Differences
This shows you the differences between two versions of the page.
| lehrkraefte:blc:informatik:ffprg1-2019:arrays-anwendung [2019/03/04 20:06] – created Ivo Blöchliger | lehrkraefte:blc:informatik:ffprg1-2019:arrays-anwendung [2019/03/04 20:07] (current) – [Tic Tac Toe] Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== 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() | ||
| + | for i in range(1, | ||
| + | line(0, | ||
| + | line(i, | ||
| + | for x in range(len(feld)): | ||
| + | for y in range(len(feld[x])): | ||
| + | if (feld[x][y]==" | ||
| + | line(x+0.1, y+0.1, x+0.9, | ||
| + | line(x+0.1, y+0.9, x+0.9, | ||
| + | elif (feld[x][y]==" | ||
| + | move(x+0.5, y+0.5) | ||
| + | circle(0.4) | ||
| + | |||
| + | |||
| + | # Modifiziert das Feld | ||
| + | def onMousePressed(x, | ||
| + | global feld | ||
| + | x = int(x) | ||
| + | y = int(y) | ||
| + | if feld[x][y]==" | ||
| + | feld[x][y] = " | ||
| + | elif feld[x][y]==" | ||
| + | feld[x][y] = " | ||
| + | else: | ||
| + | feld[x][y]=" | ||
| + | ausgabe(feld) | ||
| + | | ||
| + | |||
| + | makeGPanel(0, | ||
| + | lineWidth(5) | ||
| + | ausgabe(feld) | ||
| + | </ | ||
| + | |||
| + | ==== Aufgabe 1 ==== | ||
| + | Fügen Sie eine neue globale Variable " | ||
| + | |||
| + | ==== 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 " | ||
| + | |||
| + | ==== 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 '' | ||
| + | |||
| + | ==== Aufgabe 7 (***) ==== | ||
| + | Programmieren Sie einen Computergegner. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||