Wenn man eine Programmiersprache lernt, aber keine Idee hat, was man damit gescheites machen kann, bastelt man halt ab und zu Schwachsinn. I present you: The Schwachsinn aka „Der Grootinator“ 🙂
Die meisten dürften mit Marvel’s „Guardians of the Galaxy“ vertraut sein, oder zumindest mit Groot, dem baumigen Teammitglied der selbsternannten Galaxiewächter, und dessen einzigem Satz: „I am Groot!“. Ich will jetzt mal nicht nachschauen, wie viel Kohle Vin Diesel für das Einsprechen dieser Zeilen abkassiert hat…
Als ich vor einigen Jahren es Bitzeli mit Python herumexperimentiert habe, entstand ein kleines „Zufallsspiel“, bei dem das Programm einen Satz aus diversen Begriffen zusammensetzt und zwar so lange, bis der Satz „I am Groot!“ lautet. Zu Spielbeginn kann man tippen, wieviel Versuche benötigt werden, bis der Satz zustande kommt. Das Alles war allerdings nur in der IDE ausführbar.
Fast Forward zu heute: Da ich ja wieder etwas an PHP herumtüftle und bereits erfolgreich meinen Lottozahlengenerator in PHP portiert habe, sollte nun dieses Miniprojekt auch folgen. Aber statt fix nur nach „I am Groot!“ zu suchen hat der User hier die Wahl zwischen mehreren Sätzen (Fans von „Avengers: Endgame“ werden die vielleicht kennen).
Den „Grootinator“ findet hier hier: KLICK MICH
Nachfolgend mal das Script etwas mehr im Detail. Zuerst bilde ich drei Arrays (Listen), in denen jeweils die einzelnen Werte gespeichert werden:

Als nächstes sind die zwei Funktionen definiert, die für den Ablauf benötigt werden. „iamgroot“ wählt aus jedem Array zufällig einen Eintrag aus, während „grootsatz“ diese zu einem Satz zusammenbaut:

Dann startet das Programm. In diesem Screenshot sind die Variablen „$zielsatz“ (Satz, der gefunden werden muss) und „$wette“ (Schätzung der Anzahl Versuche) noch fixiert, im fertigen Programm kann der User diese selber wählen:

Der Loop (Schleife): Wird so oft wiederholt, bis der „Zielsatz“ mit dem Satz übereinstimmt, der von der Funktion vorgegeben wurde:

Sobald die Sätze übereinstimmen, gibt das Programm das Resultat aus:

Und zuletzt wird noch ausgerechnet, wie weit man mit seiner Schätzung daneben lag:

Und das wär’s auch schon. Pretty simple, right?
Viel Spass beim Ausprobieren. 🙂
Pascal
