Bei dem FizzBuzz-Spiel werden die Zahlen von 1 bis 100 durchlaufen. Nun können folgende Fälle eintreten:
Wenn die Zahl durch 3 teilbar ist, wird „Fizz“ ausgegeben
wenn sie durch 5 teilbar ist, wird „Buzz“ ausgegeben und
wenn sie durch 3 und 5 teilbar ist, wird „FizzBuzz“ ausgegeben.
Tritt keiner dieser Fälle ein, wird die Zahl ausgegeben.
Ob eine Zahl durch eine andere Zahl teilbar ist, kann mit Hilfe des Modulo-Operators (oder Restwert-Operator) %
herausgefunden werden. Er berechnet den Divisionsrest: 10 % 3
ist 1, da 10 geteilt durch 3 genau 3 Rest 1 ergibt.
Die ersten 20 Ausgaben sehen wir folgt aus:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Versuche das Problem nun auf unterschiedliche Arten in den folgenden Katas (Übungen) zu lösen:
auf Papier
mit einer Methode
ohne Verwendung einer Schleife (rekursiv)
mit Hilfe von nebenläufigen Threads
mit einer anderen IDE
in einer anderen Programmiersprache
als Client-Server Anwendung
mit einer grafischen Oberfläche (
GUI)
Objekt-Orientiert: Klassen und Objekte verwenden
objekt-orientiert mit Vererbung
funktional mit map, reduce und lambda-Ausdrücken
als Webanwendung (mit bottle)
in git-repo einchecken
als installierbares Programm
als getestetes Programm (mit unittest und doctests)
mit einem EA-Modul ansteuern
mit Anbindung an eine Datenbank
mit Dokumentation
-
auf einem Cluster (mit GNU parallel)
in einem UML-Aktivitätsdiagramm
in einem UML-Sequenzdiagramm
in einem UML-Klassendiagramm
Als IOT-Anwendung mit einem Message-Broker (MQTT)
Mit Kommandozeilenparametern
Mit einer Konfigurationsdatei
Als Web-Service mit REST-
API
In einer MVC-Architektur
Als Spiel (mit pygame)
In einem docker Container
Mit Fehlerbehandlung
Mit einem neuronalen Netzwerk
Mit logging in ein logfile
Mit einem Profiler
Mit einer geplotteten Visualisierung
Mögliche Lösungen für die Katas befinden sich hier oder hier. Auf dem Flagserver gibt es auch eine Übung FizzBuzz