Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:blc:informatik:glf25:labyrinthe:wegfindung [2026/02/16 07:58] – [Wegfindungsalgorithmen] Ivo Blöchliger | lehrkraefte:blc:informatik:glf25:labyrinthe:wegfindung [2026/03/17 08:58] (current) – [Dictionary nach Markierungen] Ivo Blöchliger | ||
|---|---|---|---|
| Line 4: | Line 4: | ||
| <code txt> | <code txt> | ||
| - | aktuelle Position = Startposition | + | # aktuelle Position = Startposition |
| - | Wiederhole: | + | # Wiederhole: |
| - | Alle Nachbarfelder betrachten | + | # Alle Nachbarfelder |
| - | wenn ein Nachbar mit ' | + | # wenn ein Nachbar mit ' |
| - | Beende mit " | + | # Beende mit " |
| - | wenn es einen unmarkierten Nachbar nb gibt: | + | # wenn es einen unmarkierten Nachbar nb gibt: |
| - | markiere aktuelle Position mit ' | + | # markiere aktuelle Position mit ' |
| - | aktuelle Position ist neu nb | + | # aktuelle Position ist neu nb |
| - | sonst: | + | # sonst: |
| - | aktuelles Feld mit ' | + | # aktuelles Feld mit ' |
| - | wenn es einen Nachbar nb mit ' | + | # wenn es einen Nachbar nb mit ' |
| - | aktuelles Feld ist neu nb | + | # aktuelles Feld ist neu nb |
| - | sonst: | + | # sonst: |
| - | | + | # |
| </ | </ | ||
| ===== Nützliche Code Schnipsel ===== | ===== Nützliche Code Schnipsel ===== | ||
| Line 61: | Line 61: | ||
| + | ==== Dictionary nach Markierungen ==== | ||
| + | Idee: Für jede vorhandene Markierung um eine aktuelle Zelle generiert man eine Liste mit Zellen mit dieser Markierung, z.B. | ||
| + | '' | ||
| + | |||
| + | <code python> | ||
| + | nachbarn = {} # Leerer dictionary | ||
| + | aktuell = l[2, | ||
| + | for dir in range(4): | ||
| + | if aktuell.offen[dir]: | ||
| + | nb = aktuell.nachbar(dir) | ||
| + | if nb!=None: | ||
| + | if nb.mark in nachbarn: # Markierung gibt es schon | ||
| + | nachbarn[nb.mark].append(nb) | ||
| + | else: | ||
| + | nachbarn[nb.mark] = [nb] # Sonst neue Liste mit einem Eintrag | ||
| + | | ||
| + | </ | ||
| + | ==== Testen, ob ein Dictionary einen Schlüssel hat ==== | ||
| + | <code python> | ||
| + | d = {" | ||
| + | if " | ||
| + | | ||
| + | if not " | ||
| + | | ||
| + | </ | ||