Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Tic Tac Toe ====== Die untentstehenden Aufgaben bauen aufeinander auf und erweitern den folgenden Code. Probieren Sie folgenden Code aus und studieren Sie diesen: <code python tictactoe.py> from gpanel import * feld = [] for i in range(3): linie = [] for j in range(3): linie.append(" ") feld.append(linie) # Oder in einer Zeile: feld = [[" " for i in range(3)] for j in range(3)] # Zeichnet das feld def ausgabe(feld): clear() # Fenster loeschen for i in range(1,len(feld)): # Raster line(0,i,3,i) line(i,0,i,3) for x in range(len(feld)): for y in range(len(feld[x])): if (feld[x][y]=="x"): line(x+0.1, y+0.1, x+0.9,y+0.9) line(x+0.1, y+0.9, x+0.9,y+0.1) elif (feld[x][y]=="o"): move(x+0.5, y+0.5) circle(0.4) # Modifiziert das Feld def onMousePressed(x, y): global feld x = int(x) y = int(y) if feld[x][y]==" ": feld[x][y] = "x" elif feld[x][y]=="x": feld[x][y] = "o" else: feld[x][y]=" " ausgabe(feld) makeGPanel(0,len(feld)-0.001, 0,len(feld[0])-0.001,mousePressed = onMousePressed) lineWidth(5) ausgabe(feld) </code> ==== Aufgabe 1 ==== Fügen Sie eine neue globale Variable "spieler" am Anfang des Programms hinzu. Sie soll den Spieler enthalten, der an der Reihe ist. Je nachdem soll dann in der Funktion "onMousePressed" ein Kreuz oder ein Kreis gesetzt werden. ==== Aufgabe 2 ==== Es soll nur auf leere Felder gesetzt werden können. ==== Aufgabe 3 ==== Wenn das Feld voll ist, soll beim nächsten Klick das feld "geleert" werden. ==== Aufgabe 4 (*) ==== Überprüfen Sie, ob jemand gewonnen hat. ==== Aufgabe 5 (*) ==== Wenn jemand gewinnt, sollen die Felder entsprechend markiert werden. ==== Aufgabe 6 (**) ==== Die Überprüfung soll allgemein auch für grössere Felder und längere Linien funktionieren (z.B. 4 oder 5 in einer Reihe nötig für den Gewinn). Beachten Sie dass ''len(feld)'' die Anzahl Felder in $x$-Richtung und ''len(feld[0])'' die Anzahl Felder in $y$-Richtung ergibt. ==== Aufgabe 7 (***) ==== Programmieren Sie einen Computergegner. lehrkraefte/blc/informatik/ffprg1-2019/arrays-anwendung.txt Last modified: 2019/03/04 21:07by Ivo Blöchliger