jumpin

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
jumpin [2023/11/28 12:41]
Ivo Blöchliger [Kodieren der Positionen]
jumpin [2023/12/14 15:06] (current)
Ivo Blöchliger [Kurzbeschreibung der Videos]
Line 62: Line 62:
 Eine Möglichkeit besteht darin, die Zahlen «halbsortiert» in einem [[https://en.wikipedia.org/wiki/Binary_heap|Binary Heap]], ([[https://de.wikipedia.org/wiki/Bin%C3%A4rer_Heap|Binärer Heap]]) zu speichern. Eine Möglichkeit besteht darin, die Zahlen «halbsortiert» in einem [[https://en.wikipedia.org/wiki/Binary_heap|Binary Heap]], ([[https://de.wikipedia.org/wiki/Bin%C3%A4rer_Heap|Binärer Heap]]) zu speichern.
 Damit lassen sich alle Operationen in $\log(n)$ durchführen. Damit lassen sich alle Operationen in $\log(n)$ durchführen.
 +
 +
 +===== Video-Serie =====
 +Verfolgen Sie die komplette Entwicklung des Programm mit Erklärungen:
 +  * https://fginfo.ksbg.ch/~ivo/videos/ffprog/gumpine/ oder via [[https://bldsg-my.sharepoint.com/:f:/g/personal/ivo_bloechliger_ksbg_ch/EtC8QNI8hwFPlKMzPTLDpagBbJxqBnycaozJQ8fz9613dg?e=uF5HBs|OneDrive]]
 +  * Die Codes gibt es als git-Repo, für jeden einzeln Video gibt es einen Tag, dem man auch einzeln auschecken kann. https://github.com/techlabksbg/gumpine
 +<code bash>
 +git clone https://github.com/techlabksbg/gumpine.git
 +</code>
 +
 +Einen gegebenen Tag (z.B. v0) kann man wie folgt aus-checken und daran in einem eigenen Branch (z.B. dev) weiterarbeiten:
 +
 +<code bash>
 +git fetch --all --tags
 +git checkout tags/v0
 +git switch -c dev
 +</code>
 +
 +==== Kurzbeschreibung der Videos ====
 +  * **v0**: «Einrichtung» von NodeJS, package.json, die fixen Teile eines Spielfelds als Klasse ''Fix'', Ausgabe eines Spielfelds.
 +    * Wie bringt man emojis in die git-bash? Vieleicht so: https://www.reddit.com/r/git/comments/ih4frz/how_to_get_emojis_in_git_bash_prompt_on_windows/
 +  * **v1**: Klasse ''Moving'' für bewegliche Teile des Spielfelds. 
 +  * **v2**: Codierung und Dekodierung der beweglichen Teile als Zahl.
 +  * **v3**: Generierung aller möglichen Hasenzüge als Generator-Funktion.
 +  * **v4**: Generierung aller möglichen Fuchszüge als Generator-Funktion.
 +  * **v5**: ''explore'': Sämtliche erreichbare Spielpositionen ab einer Startposition generieren.
 +  * **v6**: Aufräumen (aka refactoring) der Funktion ''explore''.
 +  * **v7**: Generator aller möglichen Hasen-Endposition.
 +  * **v8**: Generator aller möglichen Pilzposition als rekursive Funktion (sollte zwar besser iterativ als Generatorfunktion gemacht werden).
 +  * **v9**: Erste Generierung von puzzles (inkl. Lösungen). Noch ohne Füchse.
 +  * **v10**: Generator aller möglichen Platzierunge für die Füchse (muss dann später überarbeitet werden, weil gar nicht alle Positionen benötig werden).
 +  * **v11**: Kleiner bugfix in der ''explore''-Funktion, die zu unnötigen Fuchs-Bewegungen am Ende einer Lösung geführt hat (obwohl die Hasen schon in den Löchern waren).
 +  * **v12**: ''makePuzzle''-Funktion als Generator-Funktion, Serialisierung der Fix- und Moving-Instanzen (wird für die Dekodierung der Lösungen benötigt).
 +  * **v13**: ''fuchsPlaetze''-Funktion liefert nur noch nötige Platzierungen, nicht mehr alle. Damit muss nicht mehrmals das gleiche Puzzle gelöst werden.
 +  * **v14**: ''toMiniObj()'' etc. für ''Fix'' und ''Moving'': Schlankere Codierung, so dass alle Puzzles gespeichert werden können.
 +  * **v15**: Parallelisierter Puzzle-Generator mit Threads.
 +  * **v16**: Puzzles in eine JSON-Datei speichern.
 +  * **v17**: Alle puzzles generiert.
 +  * **v18**: Triviale Puzzle gefiltert.
 +  * **v19**: Full width Canvas. (Start der GUI-Programmierung)
 +  * **v20**: Koordinatensystem (0,0) bis (4,4)
 +  * **v21**: Maus und Touch Interaktion (langes Video, viel Debugging)
 +
  
  
  • jumpin.1701171678.txt.gz
  • Last modified: 2023/11/28 12:41
  • by Ivo Blöchliger