====== FizzBuzz Katas ====== 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 [[https://cscircles.cemc.uwaterloo.ca/7b-de/|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 - als Chatbot (z.B. mit sopel https://sopel.chat/) - 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 [[https://pintman.github.io/fizzbuzz/|hier]] oder [[http://vihart.com/fifty-fizzbuzzes/|hier]]. Auf dem [[Flagserver]] gibt es auch eine Übung [[FizzBuzz]]