import copy import pygame import time import random class MeinSpiel: bilder = ["Bilder/Spielfiguren/spielfigur-rot.png", "Bilder/Spielfiguren/spielfigur-gelb.png", "Bilder/Spielfiguren/spielfigur-gruen.png", "Bilder/Spielfiguren/spielfigur-blau.png"] hintergrundbilder = [] spielfeld = [] spielfiguren = [] figur_entfernt = False am_zug = 0 bewegungsrichtung = "rechts" def __init__(self, felderX, felderY): for x in range(felderX): self.spielfeld.append([]) self.spielfiguren.append([]) for y in range(felderY): self.hintergrundbilder.append( f"Bilder/Hintergrundpixel/background_{x}-{y}.jpg") self.spielfeld[x].append((7*x+y)) self.spielfiguren[x].append([]) def anfangsKonfiguration(self): 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])): 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() # print(f"Bewege Figur {figur} von Feld {x}, {y}") # if x < len(self.spielfiguren) - 1: # self.spielfiguren[x + 1][y].append(figur) # print(f"Bewege Figur {figur} auf Feld {x + 1}, {y}") # else: # self.spielfiguren[0][y].append(figur) # print(f"Bewege Figur {figur} auf Feld 0, {y}") #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): # font = pygame.font.SysFont("David CLM", 74) # textSurface = font.render(text, True, color) # self.spielfeld[x][y] = textSurface # <-- hier ist noch ein Problem