Files
E-To-Aron-Hasenspiel/README.md
T
2026-10-26 20:09:06 +01:00

8.5 KiB
Raw Blame History

E-To-Aron-Hasenspiel

Meine Spielidee

Ein Brettspiel (bei dem später eventuell mehrere Spieler zusammen bzw. abwechselnd spielen können) mit Spielfiguren und Spielfeldern: Durch Würfeln kann eine Figur eine bestimmte Anzahl an Feldern vorrücken. Man klickt einen Knopf zum Würfeln, woraufhin schnell hintereinander mehrere Seiten des Würfels (es gibt jeweils ein Bild von jeder der sechs Würfelseiten) zufällig angezeigt werden und der Würfel schließlich auf einer Seite stehen bleibt. Die Spielfigur, die gerade am Zug ist, rückt dann die gewürfelte Anzahl an Feldern vor. Auf Spezialfeldern passieren besondere Ereignisse (z. B. Minispiele, bei denen man so schnell wie möglich einen Punkt finden & anklicken muss oder, dass man beim nächsten Zug mit zwei Würfeln würfeln kann).

Protokoll

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.

TODO für den Untericht: Spielfelddesign, Spezialfelder + Erkennung (so, dass ein besonderes Ereignis ausgelöst werden kann)

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)

Es gab ein Problem mit der bewegungsrichtung-Variable, das dafür gesorgt hat, dass teilweise die falschen Figuren in die falsche Richtung bewegt wurden, da diese eine Variable für alle Figuren galt. Um das Problem zu beheben, habe ich die bewegungsrichtung-Variable vom Typ "string" zum Typ "dictionary" geändert, sodass Wertzuweisungen wie z. B. {0: 'rechts', 1: 'rechts', 2: 'rechts', 3: 'rechts'} entstehen, also jede Figur eine eigene Bewegungsrichtung, unabhängig von den anderen, haben kann. Jedoch führt dies nun am Ende des Spielfelds (rechts) wieder zu einem IndexError: list index out of range, den ich noch nicht beheben konnte

30.09.2026

Die Figuren auf dem Spielfeld gehen die gewünschte Anzahl an Zufallsschritten und die Würfelbilder werden auch schon angezeigt (aber noch nicht wieder ausgeblendet nach einer bestimmten Zeit). Jedoch kommt es in der zweiten Zeile an einem Punkt zu einem Fehler, der dazu führt, dass die Figuren sich nicht mehr weiter bewegen (bzw. auch schon beim Wechsel aus der ersten in die zweite Zeile "zu weit laufen"). Ich habe außerdem die erste Zeile des Hintergrunds mit nummerierten Feldern und Pfeilen, die die Bewegungsrichtung verständlicher machen sollen, ausgestaltet.

29.09.2026

Ich habe versucht, dass die Figuren die Zufallsschritte gehen. Jedoch hat das bisher nicht funktioniert, da die Figuren beim Drücken der Leertaste trotzdem immer nur einen Schritt gehen. Ich habe mittlerweile herausgefunden, dass dies an der self.figur_entfernt-Variable liegt, welche in der meinspiel.py in Z. 45 dafür sorgt, dass die Bewegung nur ein einziges Mal ausgeführt wird und die darüberliegende for-Schleife quasi ignoriert wird.

23.09.2026

Die Figuren bewegen sich jetzt problemlos über das gesamte Spielfeld (wechseln jeweils am Zeilenende eine Zeile nach unten). Aktuell ist der Zufallsgenerator in der meinspiel.py nur halb fertig und muss noch fertiggestellt werden.

Das Spielfeld muss noch grafisch ausgestaltet werden (die wood-table-texture-background-cropped.xcf-Datei (GIMP-Projekt) wurde dafür schon erstellt).

22.09.2026

Ich habe weiter mit dem Entfernen und Platzeieren von Figuren in dem mehrdimensionalen Array experimentiert. Die Print-Befehle, die ich jetzt in der meinspiel.py hinzugefügt habe, helfen sehr beim Verständnis der Funktionsweise des Programms bzw. in welchem Feld genau welche Figur gefunden wird und was dann gemacht wird.

16.09.2026 (zuhause)

Das bilder-Array enthält jetzt nur noch die Spielfiguren. Um die Spielfiguren vom Hintergrund zu trennen und die Bewegung zu ermöglichen, habe ich ein eigenes 2D-Array spielfiguren erstellt ("0" ist die rote Figur, "1" ist die gelbe Figur, "2" ist die grüne Figur und "3" ist die blaue Figur). Dadurch, dass self.spielfiguren[x].append([]) am Ende auch ein Array enthält, können sich mehrere Figuren auf demselben Feld befinden. Anschließend habe ich recherchiert, wie man in einer for-Schleife mit einer zweiten Zählvariable (mit der enumerate-Funktion) innerhalb eines Feldes schauen kann, wie viele Figuren dort schon stehen und die Figuren ggf. um die Anzahl der dort bereits vorhandenen Figuren mit 30 (Pixeln) multipliziert nach rechts verschieben kann, damit sie sich auf dem Feld nicht mehr überlappen. Am Ende habe ich noch versucht, mit der tasteGedrueckt-Funktion eine Figur zu bewegen, aber diese führt aktuell noch bei mehrfacher Ausführung zu einem ValueError: list.index(x): x not in list.

Da Schwierigkeiten beim Verständnis der genauen Funktionsweise der Arrays aufkamen, habe ich dabei zur Behebung schwerwiegender Fehler KI befragt (https://claude.ai/share/95047be5-0e42-45bb-aa1f-3dbd0c2ad623). Die jetzige Struktur erleichtert das schnellere Weiterarbeiten in der nächsten Stunde.

16.09.2026

Ich habe die Spielfigur-Grafiken erstellt und versucht, die Spielfiguren über den Hintergrundpixeln anzuzeigen. Dabei gibt es aber noch ein paar Probleme, die in der nächsten Stunde behoben werden müssen.

09.09.2026

Ich habe die Spielidee final formuliert. Die Berechnung der passenden Hintergrundfelder funktioniert nun (im Ordner Bilder/Hintergrundpixel befinden sich jeweils passende Bildausschnitt für den Hintergrund mit Koordinaten). Die Standardpixelgröße ist jetzt nicht mehr 60, sondern 120, da ich nicht so kleine Pixel/Felder für mein Spiel brauche.

TODO für die nächste Stunde: restliche Hintergrundpixel erstellen und mit schlussendlichem Spielbrettdesign beschäftigen.

08.09.2026

Ich habe versucht, meinen gewünschten Hintergrund einzufügen, welcher sich nicht (so wie das Standardgras) immer wieder wiederholen soll. Dies hat nicht funktioniert, da jede Änderung an der init Funktion zu Fehlern führt.

02.09.2026

Weitere Bilder hinzugefügt (für Hintergrund und Spielfeldgestaltung) und versucht, die Objekte und Text anzeigen zu lassen. Die Textanzeige funktioniert noch nicht (in Kommentaren erklärt).

01.09.2026

Würfel-Bilder heruntergeladen (wuerfel-gesamt.png) und Würfelbilder 1-4 zugeschnitten. Anleitung, um den Hintergrund zu entfernen: https://www.heise.de/tipps-tricks/GIMP-Hintergrund-transparent-machen-so-klappt-s-4304075.html


Bildquellen

Grass Image by macrovector on Freepik

Rabbit Symbol by torskaya on Freepik

holz-dunkel.jpg

wuerfel-vorlage.png

spielfeld-verbindung-schnur.png

wood-table-texture-background.jpg

spielfiguren-original.jpg

pfeil.png

Schriftart: NunitoSans-VariableFont.ttf