Challenge 7: Schere Stein Papier – Erweiterung

Challenge

In dieser Challenge wird das Stein-Schere-Papier Spiel so erweitert, dass es etwas schöner zu bedienen ist und der Micro:bit am Ende selbst ausgibt, welcher Spieler gewonnen hat. Dazu zeigt er zum einen an, welcher Spieler derzeit an der Reihe ist, zum anderen merkt er sich die erzielten Ergebnisse der Spieler und vergleicht diese miteinander. Das Endergebnis bzw. der Gewinner wird ausgegeben, also je nachdem ein Sieg für einen der Spieler oder ein Unentschieden.

Das Spiel wird mit dem gleichzeitigen Drücken von „A“ und „B“ gestartet.

Tipp:

  • Das Projekt aus der vorherigen Challenge kann hierfür verwendet und modifiziert werden
  • Man braucht zwei Variablen, um sich das Ergebnis der Spieler zu merken
  • Man braucht eine Variable, um sich den Spieler zu merken, welcher aktuell an der Reihe ist (1 oder 2)
  • Um mit A+B starten zu können, braucht man eine Variable, die einen booleschen Wert speichert (Wahr oder falsch / An oder Aus). Wenn dieser auf False steht, kann A+B gedrückt werden und das Spiel gestartet werden. Dann wird dieser Wert auf True gesetzt. Nur wenn die Variable True ist, kann das Schütteln ausgeführt werden.

Makecode

Programmierfunktion

  • Variablen
  • Events abfragen
  • If-Abfrage

Spiellogik

Wenn der Micro:bit startet, sollen die Variablen definiert und initialisiert werden.

  • Die Start-Variable auf False, um das Spiel starten zu können.
  • Eine Variable, welche die aktuelle Spielernummer speichert.
  • Variablen, um die Ergebnisse der Spieler zu speichern, je nachdem wie viele Spieler es sind braucht man für jeden eine eigene. Diese werden auf -1 gesetzt, da der Wertebereich, um die Figuren (Schere, Stein, Papier) zu bestimmen von 1 bis 3 gehen.
  • Eine Variable, die das aktuelle Ergebnis speichert. 

Durch das gleichzeitige Drücken von „A“ und „B“ soll das Spiel gestartet werden, aber nur, wenn es nicht bereits gestartet wurde, also nicht auf True steht. Dort wird sie dann auf True gesetzt und angezeigt, welcher Spieler jetzt an der Reihe ist.

Das Ermitteln der Figur kann aus der vorherigen Challenge übernommen werden und wird jetzt erweitert. Nachdem die Figur angezeigt wurde, wird mit einer if-Abfrage überprüft, ob aktuell Spieler 1 an der Reihe ist. Denn dann wird das aktuelle Ergebnis in die Variable für das Ergebnis von Spieler 1 geschrieben. Die Variable, welche den aktuellen Spieler speichert, wird um 1 erhöht und es wird erneut ausgegeben, welcher Spieler nun an der Reihe ist. 

Darunter wird mit einem else-if abgefragt, ob Spieler 2 an der Reihe ist. Man setzt das Ergebnis von Spieler 2 auf das aktuelle Ergebnis, wartet kurz und dann beginnt die Ermittlung des Gewinners.

Die Ermittlung muss innerhalb des if-Blocks für die Abfrage des letzten (zweiten) Spielers sein. Dort prüft man erst ab, ob beide Ergebnisse nicht gleich sind, sonst wird im else-Block ausgegeben, dass es sich um ein Unentschieden handelt.

Im True-Fall befindet sich die eigentliche Ermittlung mit drei if- und else-if-Abfragen, die das Ergebnis von Spieler eins mit dem von Spieler 2 vergleicht. Hat Spieler 1 z.B. eine 1 (=Schere) und Spieler 2 eine 2 (=Papier) dann hat Spieler 1 gewonnen. Dies prüft man für die beiden anderen Möglichkeiten ebenfalls. Wenn keine der drei wahr ist wird im else-Block ausgegeben, dass Spieler 2 gewonnen hat.

Wir wünschen viel Spaß mit dieser Erweiterung der Schere Stein Papier Challenge! Die Auflösung gibt es morgen früh hier auf dem Blog.

Challenge Master

Ich bin der Challenge Master. Hinter mir verbergen sich die Auszubildenden von Proact Deutschland. Gemeinsam füllen wir diesen Blog mit verschiedenen Projekten, um euch das Coden beizubringen.

 
Kommentare

Noch keine Kommentare vorhanden.

Hinterlassen Sie einen Kommentar