Das Streichholzspiel
Inhaltsverzeichnis |
Die Spielregeln
Das Streichholzspiel ist ein Spiel für zwei oder mehr Personen. Es handelt sich dabei um eine Adaption des bekannten Nim-Spiels. Die Spielregeln lauten wie folgt:
Auf dem Tisch liegen n Streichhölzer. Reihum müssen ein, zwei oder drei Streichhölzer gezogen werden, bis kein Streichholz mehr auf dem Tisch liegt. Der Spieler der das letzte Streichholz zieht gewinnt.
Umsetzung mit LearningApps.org Game-Framework
Die Gestaltung
Zunächst sollten Mock-Ups zum Spiel erstellt werden. Anschließend kann dieser Entwurf in HTML-Code abgebildet werden. Der Schwerpunkt liegt in dieser Phase auf einer kreativen Gestaltung mit vorhandenen oder eigens erstellten Grafiken und deren Formatierung. Für ein Streichholz kann beispielsweise die folgende Grafik verwendet werden:
Eine ganz einfache HTML-Lösung mit Inline-CSS könnte so aussehen (auf übliches Markup für doctype, body usw. wurde hier verzichtet):
<nowiki>
<script type="text/javascript" src="http://LearningApps.org/AppClient.js"></script>
<script type="text/javascript" src="http://LearningApps.org/GameFramework.js"></script>
<h1 style="text-align:center">Das Streichholzspiel</h1>
<div id="gamescreen" style="display:none; left:0px; top:0px; width:100%; height:100%; position:absolute; overflow:auto; background:white">
<div id="holzbox" style="width:300px; margin:50px auto;border:2px solid gray">
<!-- Hier kommen später die Streichhölzer hinein, die noch auf dem Tisch liegen -->
</div>
<div id="auswahl" style="width:300px; margin:10px auto;border:2px solid gray">
Du musst ziehen:
<input type="button" value="1" onclick="game.zieh(1)"/>
<input type="button" value="2" onclick="game.zieh(2)"/>
<input type="button" value="3" onclick="game.zieh(3)"/>
</div>
</div>
</nowiki>
Die einzige etwas spezielle Definition ist das "div" gamescreen, welches zunächst mit "display:none" versteckt geladen wird. Das Game-Framework stellt uns beim Start Elemente zur Eingabe des Spielernames und Auswahl von Mitspielern bereit. Erst wenn ein Spiel startet, werden wir gamescreen einblenden. Dies lässt sich natürlich auch auf andere Weise lösen.
Spielablauf modellieren
Die technischen Details der Client-Server-Kommunikation wollen wir an dieser stelle ganz bewusst ausblenden und dem Game-Framework überlassen. Dieses stellt uns die nötigen Routinen für den Nachrichtenversand und -empfang bereit. Ereignisorientiert wird über das Eintreffen neuer Nachrichten informiert. Die Aufgabe des Entwicklers besteht nun in der Behandlung von Ereignissen beim Eintreten verschiedener Spielsituationen wie Spielstart, Spielende, der aktuelle Spieler ist an der Reihe usw. Diese ereignisbasierte Denkweise kann durch geeignete was-passiert-wenn-Fragen zum Spielablauf gefördert werden. Diese lassen sich beispielsweise in Form von Skizzen oder Diagrammen an der Tafel erarbeiten.
Die für das Streichholzspiel mindestens benötigten Fragen sind:
- Was passiert, wenn das Spiel startet?
- Was passiert, wenn der nächste Spielzug beginnt?
- Was passiert, wenn ich an der Reihe bin?
- Was passiert, wenn ich ein Streichholz ziehe?
- Was passiert, wenn ich eine Zieh-Nachricht erhalte?
Mit Hilfe von JavaScript können wir bei eintreffenden Ereignissen die HTML-Darstellung dynamisch verändern. Damit können wir Eingabemöglichkeiten für den Spieler zum richtigen Zeitpunkt ein- bzw. ausblenden und die verbleibende Anzahl Streichhölzer auf dem Tisch aktualisieren. Das Game-Framework stellt uns das Objekt game zur Verfügung was wir nun verwenden können:
Damit haben wir bereits das fertige Spiel erstellt und können es am lokalen Computer ausprobieren. Möchte man schließlich mit mehreren Endgeräten (mehreren Webbrowsern) spielen, wird ein zentraler Server für die Kommunikation benötigt. Hierfür wird das lokal entwickelte Spiel im letzten Schritt auf den LearningApps.org-Server im Internet geladen. Die HTML- Datei mit JavaScript-Code wird dazu zusammen mit allen Bildressourcen in ein ZIP- Archiv verpackt und über ein Webformular im Entwicklerbereich von LearningApps.org hochgeladen. Die Plattform stellt automatisch einen Weblink und einen QR-Code für den Aufruf des Spiels bereit.
Gadgets.JPG