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 Both sides next revision
lehrkraefte:blc:informatik:ffprg1-2024:raster-tictactoe [2024/04/09 17:36]
Ivo Blöchliger [Gewinn überprüfen]
lehrkraefte:blc:informatik:ffprg1-2024:raster-tictactoe [2024/04/09 17:48]
Ivo Blöchliger [Gewinn überprüfen]
Line 66: Line 66:
  
 Hinweise: Hinweise:
-  * Schreiben Sie zusätzlich eine Funktion ''zaehle(x,y,vx,vy)'', die zähltwie viele gleiche Werte >=1 vom Startpunkt x,y, in Richtung des Vektors (vx,vy) anzutreffen sind. +  * Schreiben Sie zusätzlich eine Funktion ''sindsDrei(x,y,vx,vy)'', die ''true'' ergibtwenn drei gleiche Werte >=1 vom Startpunkt x,y, in Richtung des Vektors (vx,vy) anzutreffen sind. Sonst ''false''
-  * Rufen Sie die Funktion ''zaehle'' in der Funktion ''winner'' in einer for-schlaufe auf.+  * Rufen Sie die Funktion ''sindsDrei'' in der Funktion ''winner'' unter anderem in einer for-schlaufe auf. 
 + 
 +<hidden Teillösungsvorschlag> 
 +<code> 
 +  function sindsDrei(x,y,vx,vy) { 
 +        let w = meinRaster.getValue(x,y); 
 +        if (w==0) return false; 
 +        for (let i=0; i<3; i++) { 
 +            if (meinRaster.getValue(x,y)!=w) return false; 
 +            x+=vx; 
 +            y+=vy; 
 +        } 
 +        for (let i=0; i<3; i++) { 
 +            x-=vx; 
 +            y-=vy; 
 +            meinRaster.setValue(x,y,w+2); 
 +        } 
 +        return true; 
 +    } 
 + 
 +    function winner() { 
 +        for (let i=0; i<3; i++) { 
 +            if (sindsDrei(i,0,0,1)) return meinRaster.getValue(i,0);  // Vertikal 
 +            if (sindsDrei(0,i,1,0)) return meinRaster.getValue(0,i);  // Horizontal 
 +        } 
 +        if (sindsDrei(0,0,1,1)) return meinRaster.getValue(0,0);  // Diagonale in Richtung (1,1) 
 +        if (sindsDrei(2,0,-1,1)) return meinRaster.getValue(2,0);  // Diagonale in Richtung (-1,1) 
 +        return 0; 
 +    } 
 + 
 +</code> 
 +</hidden>
 </WRAP> </WRAP>
  • lehrkraefte/blc/informatik/ffprg1-2024/raster-tictactoe.txt
  • Last modified: 2024/05/17 13:10
  • by Ivo Blöchliger