28.10.2026 Stundenende

This commit is contained in:
Aron Sommer
2026-10-28 11:01:35 +01:00
parent 266f3ae1bc
commit dedc08e9f4
3 changed files with 38 additions and 5 deletions
+4
View File
@@ -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.
+3 -2
View File
@@ -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))
+30 -2
View File
@@ -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,16 +84,29 @@ 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