87 lines
7.5 KiB
Markdown
87 lines
7.5 KiB
Markdown
# 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
|
|
|
|
## 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](https://www.freepik.com/free-vector/seamless-green-grass-pattern_13187581.htm#query=grass%20texture&position=0&from_view=keyword&track=ais&uuid=c689b011-652b-4ad1-a90a-bf3c50762622)
|
|
|
|
[Rabbit Symbol by torskaya on Freepik](https://www.freepik.com/icon/rabbit_2687160#fromView=search&page=1&position=19&uuid=3c377ca9-cb56-4be7-aebe-0bcac1702034)
|
|
|
|
[holz-dunkel.jpg](https://cdnb.artstation.com/p/assets/images/images/004/682/457/large/simon-sanchez-madera-tilex1.jpg?1485480359)
|
|
|
|
[wuerfel-vorlage.png](https://www.pngwing.com/de/free-png-nptzl)
|
|
|
|
[spielfeld-verbindung-schnur.png](https://www.pngmart.com/image/492751/png/492750)
|
|
|
|
[wood-table-texture-background.jpg](https://png.pngtree.com/background/20250105/original/pngtree-vintage-wood-table-texture-background-picture-image_13410936.jpg)
|
|
|
|
[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)
|