diff --git a/Bilder/wood-table-texture-background-cropped-edited.jpg b/Bilder/wood-table-texture-background-cropped-edited.jpg deleted file mode 100644 index 04f1e18..0000000 Binary files a/Bilder/wood-table-texture-background-cropped-edited.jpg and /dev/null differ diff --git a/Bilder/wood-table-texture-background-cropped.xcf b/Bilder/wood-table-texture-background-cropped.xcf new file mode 100644 index 0000000..0d50eb8 Binary files /dev/null and b/Bilder/wood-table-texture-background-cropped.xcf differ diff --git a/README.md b/README.md index 155209b..e28551f 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,12 @@ Ein Brettspiel (bei dem später eventuell mehrere Spieler zusammen bzw. abwechse ## Protokoll +### 23.09.2026 + +Die Figuren bewegen sich jetzt problemlos über das gesamte Spielfeld (wechseln jeweils am Zeilenende eine Zeile nach unten). Aktuell ist der Zufallsgenerator in der meinspiel.py nur halb fertig und muss noch fertiggestellt werden. + +Das Spielfeld muss noch grafisch ausgestaltet werden (die `wood-table-texture-background-cropped.xcf`-Datei (GIMP-Projekt) wurde dafür schon erstellt). + ### 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. diff --git a/main.py b/main.py index 6cc43bb..ad64993 100644 --- a/main.py +++ b/main.py @@ -69,7 +69,9 @@ while True: yVerschiebung = 0 screen.blit(pyGameBilder[figur], (x*Pixel + xVerschiebung, y*Pixel + yVerschiebung)) #print(f"[{i}] Figur {figur} auf Feld {x}, {y} mit Verschiebung {xVerschiebung}") - + if meinSpiel.am_zug >= 4: + meinSpiel.am_zug = 0 + meinSpiel.figur_entfernt = False # Spielfeld/figuren zeichnen # Fenster aktualisieren pygame.display.flip() diff --git a/meinspiel.py b/meinspiel.py index b74864f..0aa5275 100644 --- a/meinspiel.py +++ b/meinspiel.py @@ -1,5 +1,7 @@ import copy import pygame +import time +import random class MeinSpiel: @@ -12,6 +14,8 @@ class MeinSpiel: spielfiguren = [] figur_entfernt = False + am_zug = 0 + bewegungsrichtung = "rechts" def __init__(self, felderX, felderY): for x in range(felderX): @@ -24,23 +28,64 @@ class MeinSpiel: self.spielfiguren[x].append([]) def anfangsKonfiguration(self): - self.spielfiguren[0][2].append(0) - self.spielfiguren[0][2].append(1) - self.spielfiguren[0][2].append(2) - self.spielfiguren[0][2].append(3) + self.spielfiguren[0][0].append(0) + self.spielfiguren[0][0].append(1) + self.spielfiguren[0][0].append(2) + self.spielfiguren[0][0].append(3) def tasteGedrueckt(self, taste): if taste == pygame.K_SPACE: + zufallswert = random.randint(1, 6) + 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]}") + try: + if len(self.spielfiguren[x][y]) > 0 and self.figur_entfernt == False: + if self.bewegungsrichtung == "rechts" and x == 6: self.bewegungsrichtung = "unten" + + print(f"Figuren auf Feld ({x}|{y}): {self.spielfiguren[x][y]}") + self.spielfiguren[x][y].pop(self.spielfiguren[x][y].index(self.am_zug)) + self.figur_entfernt = True + + zielfeld = x + zufallswert + + if zielfeld <= 6: # wenn Figur in diesem Zug nicht die Zeile wechseln muss + for i in range(zufallswert): + if self.bewegungsrichtung == "rechts": + self.spielfiguren[x + 1][y].append(self.am_zug) + elif self.bewegungsrichtung == "unten": + self.spielfiguren[x][y + 1].append(self.am_zug) + if x == 6 and self.am_zug == 3: self.bewegungsrichtung = "links" + elif x == 0 and self.am_zug == 3: self.bewegungsrichtung = "rechts" + elif self.bewegungsrichtung == "links": + self.spielfiguren[x - 1][y].append(self.am_zug) + print(f"[!] {x}") + if x == 1 and self.am_zug == 3: self.bewegungsrichtung = "unten" + elif self.bewegungsrichtung == "oben": # (wird wahrscheinlich nicht verwendet werden) + self.spielfiguren[x][y + 1].append(self.am_zug) + else: + print(f'Die "bewegungsrichtung"-Variable hat einen ungültigen Wert: {str(self.bewegungsrichtung)}') + else: + schon_gegangen = zielfeld - 6 + for i in range(schon_gegangen): + if self.bewegungsrichtung == "rechts": + self.spielfiguren[x + 1][y + 1].append(self.am_zug) + elif self.bewegungsrichtung == "links": + self.spielfiguren[x - 1][y + 1].append(self.am_zug) + else: + print(f'Die "bewegungsrichtung"-Variable hat einen ungültigen Wert: {str(self.bewegungsrichtung)}') + + + + print(self.bewegungsrichtung) + + self.am_zug += 1 + break + else: + print(f"keine Figuren auf Feld ({x}|{y}): {self.spielfiguren[x][y]}") + except ValueError: + print(f"x: {x}, y: {y}") + print("____________") # if len(self.spielfiguren[x][y]) > 0: # figur = self.spielfiguren[x][y].pop()