lehrkraefte:blc:informatik:ffprg1-2024:raster-tictactoe

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
lehrkraefte:blc:informatik:ffprg1-2024:raster-tictactoe [2024/04/09 17:48]
Ivo Blöchliger [Gewinn überprüfen]
lehrkraefte:blc:informatik:ffprg1-2024:raster-tictactoe [2024/04/09 17:57]
Ivo Blöchliger [Tic Tac Toe]
Line 20: Line 20:
     * fügen Sie eine Variable ''currentPlayer'' hinzu, die angibt, welcher Spieler (1 oder 2) gerade am Zug ist.     * 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 Variablen ''meinRaster'' und ''currentPlayer''). Dabei soll einfach abwechselnd auf leeren Feldern gezogen werden können.     * Beginnen Sie das Spiel im ''clickCallback'' zu programmieren (mit den Variablen ''meinRaster'' und ''currentPlayer''). 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ögigen Variablen zurücksetzt.
 +    * Wenn geklickt wird und alle Zellen schon voll sind, soll das Spiel neu starten.
  
 <hidden Lösungsvorschlag> <hidden Lösungsvorschlag>
Line 70: Line 73:
  
 <hidden Teillösungsvorschlag> <hidden Teillösungsvorschlag>
-<code> +<code javascript
-  function sindsDrei(x,y,vx,vy) {+    function sindsDrei(x,y,vx,vy) {
         let w = meinRaster.getValue(x,y);         let w = meinRaster.getValue(x,y);
         if (w==0) return false;         if (w==0) return false;
Line 78: Line 81:
             x+=vx;             x+=vx;
             y+=vy;             y+=vy;
-        } 
-        for (let i=0; i<3; i++) { 
-            x-=vx; 
-            y-=vy; 
-            meinRaster.setValue(x,y,w+2); 
         }         }
         return true;         return true;
Line 100: Line 98:
 </hidden> </hidden>
 </WRAP> </WRAP>
 +
 +===== Zellen markieren =====
 +<WRAP todo>
 +Ziel ist es, die gewinnende Dreierreihe zu markieren.
 +  * Fügen Sie dazu in der Datei ''raster.css'' zwei weitere Klassen ''wert3'' und ''wert4'' hinzu, um das Aussehen der gewinnenden Zellen für Spieler 1 und 2 festzulegen.
 +  * In der Funktion ''sindsDrei'', fügen Sie unmittelbar vor dem ''return true'' noch eine Schlaufe hinzu, die den Wert der gewinndenden Zellen um 2 erhöht.
 +
 +<hidden Lösungsvorschlag>
 +<code css>
 +.wert3 {
 +    background-image: url("cross.svg");
 +    background-color: lightcoral;
 +    background-size: cover;
 +}
 +.wert4 {
 +    background-image: url("dot.svg");
 +    background-color: skyblue;
 +    background-size: cover;
 +}
 +</code>
 +<code javascript>
 +        for (let i=0; i<3; i++) {
 +            x-=vx;
 +            y-=vy;
 +            meinRaster.setValue(x,y,w+2);
 +        }
 +</code>
 +</hidden>
 +</WRAP>
 +
  • lehrkraefte/blc/informatik/ffprg1-2024/raster-tictactoe.txt
  • Last modified: 2024/05/03 11:57
  • by Ivo Blöchliger