22.09.2026 Stundenende
This commit is contained in:
@@ -6,6 +6,10 @@ Ein Brettspiel (bei dem später eventuell mehrere Spieler zusammen bzw. abwechse
|
||||
|
||||
## Protokoll
|
||||
|
||||
### 22.09.2026
|
||||
|
||||
Ich habe weiter mit dem Entfernen und Platzeieren von Figuren in dem mehrdimensionalen Array experimentiert. Die Print-Befehle, die ich jetzt in der meinspiel.py hinzugefügt habe, helfen sehr beim Verständnis der Funktionsweise des Programms bzw. in welchem Feld genau welche Figur gefunden wird und was dann gemacht wird.
|
||||
|
||||
### 16.09.2026 (zuhause)
|
||||
|
||||
Das `bilder`-Array enthält jetzt nur noch die Spielfiguren. Um die Spielfiguren vom Hintergrund zu trennen und die Bewegung zu ermöglichen, habe ich ein eigenes 2D-Array `spielfiguren` erstellt ("0" ist die rote Figur, "1" ist die gelbe Figur, "2" ist die grüne Figur und "3" ist die blaue Figur). Dadurch, dass `self.spielfiguren[x].append([])` am Ende auch ein Array enthält, können sich mehrere Figuren auf demselben Feld befinden. Anschließend habe ich recherchiert, wie man in einer for-Schleife mit einer zweiten Zählvariable (mit der enumerate-Funktion) innerhalb eines Feldes schauen kann, wie viele Figuren dort schon stehen und die Figuren ggf. um die Anzahl der dort bereits vorhandenen Figuren mit 30 (Pixeln) multipliziert nach rechts verschieben kann, damit sie sich auf dem Feld nicht mehr überlappen. Am Ende habe ich noch versucht, mit der tasteGedrueckt-Funktion eine Figur zu bewegen, aber diese führt aktuell noch bei mehrfacher Ausführung zu einem `ValueError: list.index(x): x not in list`.
|
||||
|
||||
@@ -68,7 +68,7 @@ while True:
|
||||
xVerschiebung = i * 30 # Verschiebung um 30 Pixel nach rechts, jede Figur im selben Feld etwas weiter
|
||||
yVerschiebung = 0
|
||||
screen.blit(pyGameBilder[figur], (x*Pixel + xVerschiebung, y*Pixel + yVerschiebung))
|
||||
print(f"[{i}] Zeichne Figur {figur} auf Feld {x}, {y} mit Verschiebung {xVerschiebung}")
|
||||
#print(f"[{i}] Figur {figur} auf Feld {x}, {y} mit Verschiebung {xVerschiebung}")
|
||||
|
||||
# Spielfeld/figuren zeichnen
|
||||
# Fenster aktualisieren
|
||||
|
||||
+27
-12
@@ -11,6 +11,8 @@ class MeinSpiel:
|
||||
spielfeld = []
|
||||
spielfiguren = []
|
||||
|
||||
figur_entfernt = False
|
||||
|
||||
def __init__(self, felderX, felderY):
|
||||
for x in range(felderX):
|
||||
self.spielfeld.append([])
|
||||
@@ -22,15 +24,24 @@ class MeinSpiel:
|
||||
self.spielfiguren[x].append([])
|
||||
|
||||
def anfangsKonfiguration(self):
|
||||
self.spielfiguren[0][1].append(0)
|
||||
self.spielfiguren[0][1].append(1)
|
||||
self.spielfiguren[0][1].append(2)
|
||||
self.spielfiguren[0][1].append(3)
|
||||
self.spielfiguren[0][2].append(0)
|
||||
self.spielfiguren[0][2].append(1)
|
||||
self.spielfiguren[0][2].append(2)
|
||||
self.spielfiguren[0][2].append(3)
|
||||
|
||||
def tasteGedrueckt(self, taste):
|
||||
if taste == pygame.K_SPACE:
|
||||
for x in range(len(self.spielfiguren)):
|
||||
for y in range(len(self.spielfiguren[x])):
|
||||
if len(self.spielfiguren[x][y]) > 0 and self.figur_entfernt == False:
|
||||
print(f"Figuren auf Feld ({x}|{y}): {self.spielfiguren[x][y]}")
|
||||
self.spielfiguren[x][y].pop(self.spielfiguren[x][y].index(1))
|
||||
self.figur_entfernt = True
|
||||
self.spielfiguren[x + 1][y].append(1)
|
||||
break
|
||||
else:
|
||||
print(f"keine Figuren auf Feld ({x}|{y}): {self.spielfiguren[x][y]}")
|
||||
|
||||
# if len(self.spielfiguren[x][y]) > 0:
|
||||
# figur = self.spielfiguren[x][y].pop()
|
||||
# print(f"Bewege Figur {figur} von Feld {x}, {y}")
|
||||
@@ -41,14 +52,18 @@ class MeinSpiel:
|
||||
# self.spielfiguren[0][y].append(figur)
|
||||
# print(f"Bewege Figur {figur} auf Feld 0, {y}")
|
||||
|
||||
if len(self.spielfiguren[x][y]) > 0:
|
||||
# print(str(x) + " | " + str(len(self.spielfiguren) - 1) + " | " + str(self.spielfiguren))
|
||||
self.spielfiguren[x][y].pop(
|
||||
self.spielfiguren[x][y].index(1)) # rote Spielfigur entfernen
|
||||
if x < len(self.spielfiguren) - 1:
|
||||
self.spielfiguren[x + 1][y].append(1)
|
||||
else:
|
||||
self.spielfiguren[x - 1][y].append(1)
|
||||
#if len(self.spielfiguren[x][y]) > 0:
|
||||
# print(self.spielfiguren[x][y])
|
||||
# self.spielfiguren[x][y].pop(self.spielfiguren[x][y].index(1))
|
||||
|
||||
# if len(self.spielfiguren[x][y]) > 0:
|
||||
# # print(str(x) + " | " + str(len(self.spielfiguren) - 1) + " | " + str(self.spielfiguren))
|
||||
# self.spielfiguren[x][y].pop(
|
||||
# self.spielfiguren[x][y].index(-1))
|
||||
# if x < len(self.spielfiguren) - 1:
|
||||
# self.spielfiguren[x + 1][y].append(3)
|
||||
# else:
|
||||
# self.spielfiguren[x - 1][y].append(3)
|
||||
|
||||
|
||||
# def renderText(self, text: str, x: int, y: int, color: tuple):
|
||||
|
||||
Reference in New Issue
Block a user