Files
E-To-Aron-Hasenspiel/meinspiel.py
T
2026-10-07 11:05:02 +02:00

120 lines
5.9 KiB
Python

import copy
import pygame
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"]
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 = []
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):
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)
print(self.bewegungsrichtung)
def tasteGedrueckt(self, taste):
if taste == pygame.K_SPACE or "mouseevent":
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
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"
if self.bewegungsrichtung[self.am_zug] == "links":
if self.zeilenversetzt:
self.spielfiguren[x - 1][y].append(self.am_zug)
self.spielfiguren[x][y].pop(self.spielfiguren[x][y].index(self.am_zug))
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)
def mouseButtonClick(self, x, y):
if x >= 270 and y >= 770 and x <= 490 and y <= 830:
self.tasteGedrueckt("mouseevent")