Bewegungslogik umgebaut
This commit is contained in:
+54
-85
@@ -8,111 +8,80 @@ class MeinSpiel:
|
||||
"Bilder/Spielfiguren/spielfigur-gelb.png",
|
||||
"Bilder/Spielfiguren/spielfigur-gruen.png",
|
||||
"Bilder/Spielfiguren/spielfigur-blau.png"]
|
||||
wuerfel = ["Bilder/wuerfel-1.png",
|
||||
"Bilder/wuerfel-2.png",
|
||||
"Bilder/wuerfel-3.png",
|
||||
"Bilder/wuerfel-4.png",
|
||||
"Bilder/wuerfel-5.png",
|
||||
"Bilder/wuerfel-6.png"]
|
||||
hintergrundbilder = []
|
||||
spielfeld = []
|
||||
spielfiguren = []
|
||||
wuerfel = [f"Bilder/wuerfel-{i}.png" for i in range(1, 7)]
|
||||
# hintergrundbilder = []
|
||||
# spielfeld = []
|
||||
# spielfiguren = []
|
||||
|
||||
figur_entfernt = False
|
||||
zeilenversetzt = False
|
||||
am_zug = 0
|
||||
bewegungsrichtung = {0: "rechts", 1: "rechts", 2: "rechts", 3: "rechts"}
|
||||
zufallswert = int()
|
||||
wuerfelBildAnzeigen = False
|
||||
# figur_entfernt = False
|
||||
# zeilenversetzt = False
|
||||
# am_zug = 0
|
||||
# bewegungsrichtung = {0: "rechts", 1: "rechts", 2: "rechts", 3: "rechts"}
|
||||
# zufallswert = int()
|
||||
# wuerfelBildAnzeigen = False
|
||||
|
||||
def __init__(self, felderX, felderY):
|
||||
self.felderX, self.felderY = felderX, felderY
|
||||
self.hintergrundbilder = []
|
||||
self.spielfeld = []
|
||||
self.spielfiguren = []
|
||||
self.am_zug = 0
|
||||
self.zufallswert = 0
|
||||
self.wuerfelBildAnzeigen = False
|
||||
|
||||
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.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)
|
||||
self.pfad = []
|
||||
for y in range(felderY):
|
||||
if y <= 4:
|
||||
if y % 2 == 0:
|
||||
bewegungsrichtung = range(felderX)
|
||||
else:
|
||||
bewegungsrichtung = range(felderX - 1, -1, -1) # range funktioniert als range(start, stop, step), bei stop 0 wird die 0 selbst nicht mehr mitgezählt! -> deshalb -1
|
||||
for x in bewegungsrichtung:
|
||||
self.pfad.append((x, y))
|
||||
|
||||
print(self.bewegungsrichtung)
|
||||
self.positionen = [0, 0, 0, 0]
|
||||
|
||||
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)
|
||||
|
||||
for figur in range(4):
|
||||
x, y = self.pfad[0]
|
||||
self.spielfiguren[x][y].append(figur)
|
||||
|
||||
def tasteGedrueckt(self, taste):
|
||||
if taste == pygame.K_SPACE or "mouseevent":
|
||||
self.zufallswert = random.randint(1, 6)
|
||||
if taste != pygame.K_SPACE and taste != "mouseevent":
|
||||
return
|
||||
|
||||
self.wuerfelBildAnzeigen = True
|
||||
self.zufallswert = random.randint(1, 6)
|
||||
self.wuerfelBildAnzeigen = True
|
||||
|
||||
for i in range(self.zufallswert):
|
||||
self.figur_entfernt = False
|
||||
print(f"[Schritt {i}] Figur {self.am_zug} geht {self.zufallswert}")
|
||||
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:
|
||||
# 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
|
||||
figur = self.am_zug
|
||||
start = self.positionen[figur]
|
||||
ziel = (start + self.zufallswert, len(self.pfad) - 1)
|
||||
print(self.pfad)
|
||||
|
||||
if self.bewegungsrichtung[self.am_zug] == "unten":
|
||||
self.spielfiguren[x][y + 1].append(self.am_zug)
|
||||
self.zeilenversetzt = True
|
||||
if x == 6: self.bewegungsrichtung[self.am_zug] = "links"
|
||||
elif x == 0: self.bewegungsrichtung[self.am_zug] = "rechts"
|
||||
start_x, start_y = self.pfad[start]
|
||||
self.spielfiguren[start_x][start_y].remove(figur)
|
||||
|
||||
if self.bewegungsrichtung[self.am_zug] == "links":
|
||||
if self.zeilenversetzt:
|
||||
self.spielfiguren[x - 1][y].append(self.am_zug)
|
||||
ziel_x, ziel_y = self.pfad[ziel]
|
||||
self.spielfiguren[ziel_x][ziel_y].append(figur)
|
||||
|
||||
self.spielfiguren[x][y].pop(self.spielfiguren[x][y].index(self.am_zug))
|
||||
self.positionen[figur] = ziel
|
||||
|
||||
self.zeilenversetzt = False # zurücksetzen
|
||||
else: self.spielfiguren[x - 1][y].append(self.am_zug)
|
||||
if x - 1 == 0: self.bewegungsrichtung[self.am_zug] = "unten"
|
||||
|
||||
if self.bewegungsrichtung[self.am_zug] == "rechts":
|
||||
if self.zeilenversetzt:
|
||||
self.spielfiguren[x + 1][y + 1].append(self.am_zug)
|
||||
|
||||
self.spielfiguren[x][y + 1].pop(self.spielfiguren[x][y + 1].index(self.am_zug))
|
||||
|
||||
self.zeilenversetzt = False
|
||||
else:
|
||||
self.spielfiguren[x + 1][y].append(self.am_zug)
|
||||
if x + 1 == 6: self.bewegungsrichtung[self.am_zug] = "unten"
|
||||
|
||||
#if self.bewegungsrichtung[self.am_zug] == "rechts":
|
||||
# self.spielfiguren[x + 1][y].append(self.am_zug)
|
||||
# if x == 6: self.bewegungsrichtung[self.am_zug] = "unten"
|
||||
#if self.bewegungsrichtung[self.am_zug] == "unten":
|
||||
# self.spielfiguren[x][y + 1].append(self.am_zug)
|
||||
# if x == 6: self.bewegungsrichtung[self.am_zug] = "links"
|
||||
# elif x == 0: self.bewegungsrichtung[self.am_zug] = "rechts"
|
||||
#if self.bewegungsrichtung[self.am_zug] == "links":
|
||||
# self.spielfiguren[x - 1][y].append(self.am_zug)
|
||||
# print(f"[!] {x}")
|
||||
# if x == 1 and self.am_zug == 3: self.bewegungsrichtung[self.am_zug] = "unten"
|
||||
#if self.bewegungsrichtung[self.am_zug] == "oben": # (wird wahrscheinlich nicht verwendet werden)
|
||||
# self.spielfiguren[x][y + 1].append(self.am_zug)
|
||||
# # print(f'Die "bewegungsrichtung"-Variable hat einen ungültigen Wert: {str(self.bewegungsrichtung[self.am_zug])}')
|
||||
|
||||
|
||||
print(self.bewegungsrichtung)
|
||||
else:
|
||||
# print(f"keine Figuren auf Feld ({x}|{y}): {self.spielfiguren[x][y]}")
|
||||
break
|
||||
except ValueError:
|
||||
# print(f"x: {x}, y: {y}")
|
||||
break
|
||||
print("____________")
|
||||
self.am_zug += 1
|
||||
print(self.bewegungsrichtung)
|
||||
print(f"Figur {figur}: von {start} nach {ziel} (Gewürfelt: {self.zufallswert})")
|
||||
self.am_zug = (self.am_zug + 1) % 4 # mit Modulo-Operator ist (3 + 1) % wieder 0
|
||||
|
||||
def mouseButtonClick(self, x, y):
|
||||
if x >= 270 and y >= 770 and x <= 490 and y <= 830:
|
||||
|
||||
Reference in New Issue
Block a user