Tic Tac Toe
- Legen Sie einen neuen Ordner 'tictactoe' and und speichern Sie darin die Dateien der Basis für ein Raster Spiel.
- Speichern Sie im gleichen Ordner auch folgende beiden Bilder (gemacht mit dem sehr zu empfehlenden OpenSource-Programm Inkscape:
- Fügen Sie in der Datei
raster.cssfolgenden CSS-Code hinzu:
.wert1 { background-image: url("cross.svg"); background-size: cover; } .wert2 { background-image: url("dot.svg"); background-size: cover; }
- In der Datei
mygame.js- entfernen Sie den Aufruf von
Raster.addColorRules, - passen Sie die Grösse auf 3 mal 3 an,
- fügen Sie eine Variable
currentPlayerhinzu, die angibt, welcher Spieler (1 oder 2) gerade am Zug ist. - Beginnen Sie das Spiel im
clickCallbackzu programmieren (mit den VariablenmeinRasterundcurrentPlayer). Dabei soll einfach abwechselnd auf leeren Feldern gezogen werden können. - Fügen Sie eine weitere Variable
cellsPlayedhinzu, die zählt, wie viele Zellen schon belegt sind. - Programmieren Sie eine Unterfunktion
reset, die das Spiel und alle nötigen Variablen zurücksetzt. - Wenn geklickt wird und alle Zellen schon voll sind, soll das Spiel neu starten.
Gewinn überprüfen
In der Datei mygame.js, fügen Sie eine weitere Unterfunktion winner hinzu, die folgende Werte zurückgibt:
- 0, wenn niemand 3 in einer Reihe hat
- 1 oder 2, wenn Spieler 1 oder Spieler 2 gewonnen hat.
Hinweise:
- Schreiben Sie zusätzlich eine Funktion
sindsDrei(x,y,vx,vy), dietrueergibt, wenn drei gleiche Werte >=1 vom Startpunkt x,y, in Richtung des Vektors (vx,vy) anzutreffen sind. Sonstfalse. - Rufen Sie die Funktion
sindsDreiin der Funktionwinnerunter anderem in einer for-schlaufe auf.
Zellen markieren
Ziel ist es, die gewinnende Dreierreihe zu markieren.
- Fügen Sie dazu in der Datei
raster.csszwei weitere Klassenwert3undwert4hinzu, um das Aussehen der gewinnenden Zellen für Spieler 1 und 2 festzulegen. - In der Funktion
sindsDrei, fügen Sie unmittelbar vor demreturn truenoch eine Schlaufe hinzu, die den Wert der gewinndenden Zellen um 2 erhöht.