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.css
folgenden 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
currentPlayer
hinzu, die angibt, welcher Spieler (1 oder 2) gerade am Zug ist. - Beginnen Sie das Spiel im
clickCallback
zu programmieren (mit den VariablenmeinRaster
undcurrentPlayer
). Dabei soll einfach abwechselnd auf leeren Feldern gezogen werden können. - Fügen Sie eine weitere Variable
cellsPlayed
hinzu, 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)
, dietrue
ergibt, wenn drei gleiche Werte >=1 vom Startpunkt x,y, in Richtung des Vektors (vx,vy) anzutreffen sind. Sonstfalse
. - Rufen Sie die Funktion
sindsDrei
in der Funktionwinner
unter anderem in einer for-schlaufe auf.
Zellen markieren
Ziel ist es, die gewinnende Dreierreihe zu markieren.
- Fügen Sie dazu in der Datei
raster.css
zwei weitere Klassenwert3
undwert4
hinzu, um das Aussehen der gewinnenden Zellen für Spieler 1 und 2 festzulegen. - In der Funktion
sindsDrei
, fügen Sie unmittelbar vor demreturn true
noch eine Schlaufe hinzu, die den Wert der gewinndenden Zellen um 2 erhöht.