Workshop CMU - ein eigenes Spiel
In diesem Workshop zeigen wir Euch den Sandkasten der CMU Academy, und wie ihr diesen Online-Python-Editor für Eure eigenen Programmierideen verwenden könnt.
Links
Die CS Academy der Carnegy Mellon University (CMU)
https://eu.academy.cs.cmu.edu
Ein Damespiel selber bauen
Wir wollen das beliebte Brettspiel "Dame" erstellen. Wir benötigen hierfür ein Schachbrett und 12 Spielfiguren in jeweils weiß und schwarz.
[a, b, c, ..]
, wobei []
für eine leere Liste steht.y = [1,3,5,7]
Mit der range-Funktion kann eine Liste erzeugt werden: range(start, ende, schrittlänge)
print(list(range(1,10,2)))
for i in range(1,10):
print(i)
Zunächst soll schachbrettartig das Spielfeld angelegt werden. Füge den Quellcode deinem CMU-Sandkasten hinzu:
sQuadrat = 50
spielfeld = []
def zeichne_spielfeld():
for x in range(0,sQuadrat*8,sQuadrat):
zeile = []
for y in range(0,sQuadrat*8,sQuadrat):
r = Rechteck(x, y, sQuadrat, sQuadrat, füllen="weiß", rand="schwarz")
zeile.append(r)
spielfeld.append(zeile)
zeichne_spielfeld()
Wenn du die Funktion zeichne_schachbrettmuster
hinzufügst, dann werden die Felder eingefärbt:
def zeichne_schachbrettmuster():
for i in range(8):
for j in range(8):
if i % 2 + j % 2 == 1:
spielfeld[i][j].fill = "sienna"
else:
spielfeld[i][j].fill = "tan"
zeichne_schachbrettmuster()
Nun zeichnen wir die Damefiguren:
def zeichne_figuren():
for i in range(8):
for j in range(3):
if i % 2 + j % 2 == 1:
kreis = Kreis(i*50+25,j*50+25,20)
figuren.add(kreis)
for k in range(5,8):
if i % 2 + k % 2 == 1:
kreis = Kreis(i*50+25,k*50+25,20, füllen="maisSeide")
figuren.add(kreis)
figuren = Gruppe()
zeichne_figuren()
Wir wollen, dass sich die Figuren bewegen können. Wenn ein Spielstein mit der Maus von einem Feld auf ein anderes gezogen wird, dann soll der Stein auf dieses Feld wechseln.
def beiMaustasteHoch(mausX, mausY):
indexX = mausX // 50
indexY = mausY // 50
if figur != None:
figur.mitteX = indexX * 50 + 25
figur.mitteY = indexY * 50 + 25
def beiMaustasteRunter(mausX, mausY):
global figur
figur = figuren.treffenTest(mausX, mausY)
2. Wie können diese behoben werden?