2 Journal
Alfred Baumann edited this page 2026-09-09 16:02:31 +02:00

15.05

Was habe ich erreicht?

Ich habe einen Grossteil der Kernlogik und des GUIs geschrieben. Dazu habe ich einen parser, der die "Descriptions" der Spielfelder, die von Tatham's Net generiert werden zu einem Format umwandelt, die mein Programm versteht. So kann ich einfacher die Algorithmen testen, da ich die bretter nicht selber Generieren muss und so weis ich, dass jedes Brett überhaupt lösbar ist.

Was fand ich einfach?

Die Kernlogik des spiels, aber auch vor allem die GUI zu schreiben war eher einfach, da das Minesweeper, die ich im EFIN geschrieben habe sehr ähnlich ist. Daher konnte ich den Aufbau des Programms von dort übernehmen und musste sie nur anpassen.

Was fand ich schwierig?

Um die Parser zu schreiben musste ich die source-code von Simon Tatham analysieren und dann herausfinden, wie die Board Descriptions aufgebaut sind. Danach musste ich die Descriptions übersetzen, was auch schwierig war, da er eine sehr andere Methode benutzte, um die einzelnen Zellen darzustellen.

Was will ich als nächstes machen?

Ich will noch die GUI fertigstellen (braucht vor allem noch das aufleuchten, wenn teile mit der Source-node verbunden sind). Danach will ich noch den Code, wo ich habe dokumentieren und Kommentieren, so dass es besser verständlich ist.

08.06

Was habe ich erreicht?

Ich habe das brute-force algorithmus geschrieben und ein set Descriptions von Tatham's Net generiert, welche für das Spiel gneutzt werden.

Was fand ich einfach?

Das Implementieren des brute-force Algorithmus fiel mir leicht, da es ein sehr einfacher algorithmus ist und keine besonderen Datenstrukturen braucht ausser das Feld selber.

Was fand ich schwierig?

Es war am anfang nicht klar, wie ich schnell viele Descriptions erhalten könnte, aber nach ein bisschen suchen habe ich herausgefunden, dass mit dem flag --description {amount} {width}x{height} das Programm von Tatham einfach viele dimensions generiert, was ich gut beutzen konnte.

Was will ich als nächstes machen?

Ich will der Regelbasierte Algorithmus implementieren.

17.06

Was habe ich erreicht?

Ich habe das Wave-Function-Collapse Algorithmus implementiert und ein paar bugs geflickt.

Was fand ich einfach?

Ich fand es einfach, die grobe idee des Wave-Function-Collapse zu skizzieren.

Was fand ich schwierig?

Ich fand es schwierig, die Idee des Algorithmus in code zu übersetzen, da ich nicht an ganz alles in die grobe Skizze gedacht habe und ich habe im Spiel keine methode geschrieben, um ihn zu speichern, wieder herzustellen oder zu kopieren.

Was will ich als nächstes machen?

Ich will den Algorithmus von Tatham porten und die Algorithmen profilen.

05.08

Was habe ich erreicht?

Ich habe das Algorithmus von Tatham geportet und ein profiler für die Laufzeit geschrieben.

Was fand ich einfach?

Es war einfach, das Algorithmus zu porten, da ich die originalsprache (C) schon gut kenne.

Was fand ich schwierig?

Als erstes habe ich das Programm nicht richtig abgeschrieben, also funktionierte er nicht. Um das zu beheben, musste ich die Funktionsweise des Algorithmus verstehen und den fehler finden. Was es noch schwieriger machte, war dass ich nicht so einfach C debuggen kann, also musste ich die kaputte python version debuggen und aus dem und dem C-Code ausarbeiten, wie das programm funktionierte.

Was will ich als nächstes machen?

Ich will die Algorithmen profilen und anfangen, den Bericht zu schreiben.