diff --git a/Bilder/Hintergrundpixel/placeholder.jpg b/Bilder/Hintergrundpixel/placeholder.jpg new file mode 100644 index 0000000..57939da Binary files /dev/null and b/Bilder/Hintergrundpixel/placeholder.jpg differ diff --git a/Bilder/NunitoSans-VariableFont.ttf b/Bilder/NunitoSans-VariableFont.ttf new file mode 100644 index 0000000..9ee3c15 Binary files /dev/null and b/Bilder/NunitoSans-VariableFont.ttf differ diff --git a/README.md b/README.md index 792ecf5..6514c0e 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,10 @@ Ein Brettspiel (bei dem später eventuell mehrere Spieler zusammen bzw. abwechse ## Protokoll +## 07.10.2026 + +Es besteht weiterhin ein Problem mit steckenbleibenden Figuren, sobald diese in die zweite Zeile wandern. Allerdings habe ich es jetzt geschafft, das Design ein bisschen zu überarbeiten und man kann jetzt auf einen "Würfeln"-Button drücken, statt jedes Mal die Leertaste zum Würfeln zu drücken. + ## 06.10.2026 *(heute Doppelunterricht in Vertretungsstunde bei Frau Wilmsen)* @@ -78,3 +82,5 @@ Würfel-Bilder heruntergeladen (`wuerfel-gesamt.png`) und Würfelbilder 1-4 zuge [spielfiguren-original.jpg](https://media.istockphoto.com/id/1197681149/de/vektor/ludo-brett-spiel-person-m%C3%A4nnliche-steine-figur-spielen.jpg?s=612x612&w=0&k=20&c=D7t6cM2rkEtojbYSmej5AHPxZPPhsTDZpUcNgKAEvGc=) [pfeil.png](https://toppng.com/uploads/preview/pfeil-11550709339vnxs3yqwrb.png) + +[Schriftart: NunitoSans-VariableFont.ttf](https://fonts.google.com/specimen/Nunito+Sans) diff --git a/main.py b/main.py index 2e2118c..68c7f29 100644 --- a/main.py +++ b/main.py @@ -14,6 +14,7 @@ FelderX, FelderY = int(Breite / Pixel), int(Hoehe / Pixel) FPS = 60 SCHWARZ = (0, 0, 0) WEISS = (255, 255, 255) +GRUEN = (11, 110, 0) pyGameBilder = [] hintergrundBilder = [] wuerfelBilder = [] @@ -26,7 +27,7 @@ for fname in meinSpiel.hintergrundbilder: try: hintergrundBilder.append(pygame.image.load(fname)) except (FileNotFoundError, pygame.error): - hintergrundBilder.append(pygame.image.load("Bilder/Grass.jpg")) + hintergrundBilder.append(pygame.image.load("Bilder/Hintergrundpixel/placeholder.jpg")) for fname in meinSpiel.bilder: try: pyGameBilder.append(pygame.image.load(fname)) @@ -57,9 +58,11 @@ while True: if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE): pygame.quit() - # print(f"{int((pygame.mouse.get_pos()[0])/120)}, " - # f"{int((pygame.mouse.get_pos()[1])/120)}") + print(f"{int((pygame.mouse.get_pos()[0])/120)}, " + f"{int((pygame.mouse.get_pos()[1])/120)}") # Spiellogik + if event.type == pygame.MOUSEBUTTONDOWN: + meinSpiel.mouseButtonClick(pygame.mouse.get_pos()[0], pygame.mouse.get_pos()[1]) if event.type == KEYDOWN: meinSpiel.tasteGedrueckt(event.key) @@ -79,6 +82,8 @@ while True: #print(meinSpiel.zufallswert) if meinSpiel.wuerfelBildAnzeigen: screen.blit(pygame.image.load(f"Bilder/wuerfel-{meinSpiel.zufallswert}.png"), (310, 600)) + pygame.draw.rect(screen, GRUEN, (290, 770, 200, 60)) + screen.blit(pygame.font.Font("Bilder/NunitoSans-VariableFont.ttf", 38).render("WÜRFELN", True, (255, 255, 255)), (300, 775)) #print(f"[{i}] Figur {figur} auf Feld {x}, {y} mit Verschiebung {xVerschiebung}") if meinSpiel.am_zug >= 4: meinSpiel.am_zug = 0 diff --git a/meinspiel.py b/meinspiel.py index 306a000..718fa96 100644 --- a/meinspiel.py +++ b/meinspiel.py @@ -8,19 +8,20 @@ class MeinSpiel: "Bilder/Spielfiguren/spielfigur-gelb.png", "Bilder/Spielfiguren/spielfigur-gruen.png", "Bilder/Spielfiguren/spielfigur-blau.png"] - wuerfel = ["Bilder/wurfel-1.png", + wuerfel = ["Bilder/wuerfel-1.png", "Bilder/wuerfel-2.png", "Bilder/wuerfel-3.png", - "Bilder/wurfel-4.png", - "Bilder/wurfel-5.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 = {} + bewegungsrichtung = {0: "rechts", 1: "rechts", 2: "rechts", 3: "rechts"} zufallswert = int() wuerfelBildAnzeigen = False @@ -40,13 +41,10 @@ class MeinSpiel: self.spielfiguren[0][0].append(2) self.spielfiguren[0][0].append(3) - for i in range(4): - self.bewegungsrichtung[i] = "rechts" - print(f"ANFANGSWERT BEWEGUNGSRICHTUNG: für {i}") print(self.bewegungsrichtung) def tasteGedrueckt(self, taste): - if taste == pygame.K_SPACE: + if taste == pygame.K_SPACE or "mouseevent": self.zufallswert = random.randint(1, 6) self.wuerfelBildAnzeigen = True @@ -62,20 +60,47 @@ class MeinSpiel: self.spielfiguren[x][y].pop(self.spielfiguren[x][y].index(self.am_zug)) self.figur_entfernt = True - 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) + 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": - 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])}') + 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) @@ -87,3 +112,8 @@ class MeinSpiel: 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")