From dedc08e9f46cdae4532d7034bc9b21566428ad40 Mon Sep 17 00:00:00 2001 From: Aron Sommer Date: Wed, 28 Oct 2026 11:01:35 +0100 Subject: [PATCH] 28.10.2026 Stundenende --- README.md | 4 ++++ main.py | 5 +++-- meinspiel.py | 34 +++++++++++++++++++++++++++++++--- 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 5f3229d..c2f984b 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,10 @@ Ein Brettspiel (bei dem später eventuell mehrere Spieler zusammen bzw. abwechse ## Protokoll +## 28.10.2026 + +Ich habe ein weiteres Problem mit der Bewegung der Spielfiguren behoben und versucht, eine Würfelanimation (beim Würfeln sollen zuerst verschiedene zufällige Würfelbilder angezeigt werden, bevor das richtige angezeigt wird) einzubauen. Diese ist allerdings noch nicht fertig. + ## 26.10.2026 (zuhause) Ich habe das Problem mit der Bewegung der Figuren gelöst, indem ich die Bewegungslogik so umgebaut habe, dass nicht mehr bei jedem Zug basierend auf der aktuellen x- und y-Position die nächsten Schritte durch if-Abfragen vorgegeben werden. Stattdessen wird jetzt in der `anfangsKonfiguration()` eine Pfad-Variable für die Figuren angelegt und die genauen Koordinaten der Felder, über die die Figuren laufen sollen, in richtiger Reihenfolge mit `range()`-Funktionen in das Array der Pfad-Variable eingefügt (über STRG+Linksklick auf die range-Funktion habe ich herausgefunden, dass man auch einen Stop-Wert für das Zählen eingeben kann und die Zählrichtung mit -1 für ungerade Zeilen umkehren kann). Durch die `min()`-Funktion in der `tasteGedrueckt()`–Funktion bleiben die Figuren außerdem am Ende des Spielfelds stehen und laufen nicht mehr weiter. diff --git a/main.py b/main.py index 361a78d..266cec3 100644 --- a/main.py +++ b/main.py @@ -5,7 +5,7 @@ from pygame.locals import * pygame.init() import time - +import random # Variablen/KONSTANTEN setzen Breite, Hoehe = 840, 840 @@ -79,7 +79,8 @@ while True: yVerschiebung = 0 screen.blit(pyGameBilder[figur], (x * Pixel + xVerschiebung, y * Pixel + yVerschiebung)) # print(meinSpiel.zufallswert) - if meinSpiel.wuerfelBildAnzeigen: + if meinSpiel.wuerfelBildAnzeigen == True: + time.sleep(0.01) 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)) diff --git a/meinspiel.py b/meinspiel.py index e81b1bd..226e3f3 100644 --- a/meinspiel.py +++ b/meinspiel.py @@ -1,6 +1,8 @@ import copy import pygame import random +import math +import time class MeinSpiel: @@ -26,7 +28,10 @@ class MeinSpiel: self.spielfeld = [] self.spielfiguren = [] self.am_zug = 0 + self.zufallswert = 0 + + self.animationsWerte = [] self.wuerfelBildAnzeigen = False for x in range(felderX): @@ -60,6 +65,16 @@ class MeinSpiel: x, y = self.pfad[0] self.spielfiguren[x][y].append(figur) + def animateWuerfel(self): + for n in range(20): + self.animationsWerte.append(random.randint(1, 6)) + + for i in range(20): + time.sleep(1) + self.wuerfelBildAnzeigen = i + + self.wuerfelBildAnzeigen = True + def tasteGedrueckt(self, taste): if taste != pygame.K_SPACE and taste != "mouseevent": return @@ -69,19 +84,32 @@ class MeinSpiel: figur = self.am_zug start = self.positionen[figur] + #print(f"start: {start}\nself.zufallswert: {self.zufallswert}") ziel = (start + self.zufallswert, len(self.pfad) - 1) print(self.pfad) + # print(f"{self.pfad[start + self.zufallswert][0]}") + # print(f"math: {math.floor(start + self.zufallswert / 7)}") + # print(f"ziel_y: {self.pfad[start + self.zufallswert][1]}") + start_x, start_y = self.pfad[start] self.spielfiguren[start_x][start_y].remove(figur) - ziel_x, ziel_y = self.pfad[ziel] + print(f"self.positionen[figur]: {self.positionen[figur]}, {figur}") + print(f"Hier: {start_x} {start_y}") + try: + ziel_x = self.pfad[start + self.zufallswert][0] + ziel_y = self.pfad[start + self.zufallswert][1] + except IndexError: + ziel_x = self.pfad[len(self.pfad) - 1][0] + ziel_y = self.pfad[len(self.pfad) - 1][1] + print(f"Ziel-Koordinaten: {ziel_x} {ziel_y}") self.spielfiguren[ziel_x][ziel_y].append(figur) - self.positionen[figur] = ziel + self.positionen[figur] = ziel[0] 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 + 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: