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:ffprg1-2020:snake [2020/05/04 17:09] Ivo Blöchliger [Snake] |
lehrkraefte:blc:informatik:ffprg1-2020:snake [2021/04/28 14:11] Ivo Blöchliger [Snake] |
||
---|---|---|---|
Line 5: | Line 5: | ||
{{ : | {{ : | ||
+ | |||
+ | === Spiel via Netzwerk === | ||
+ | Lassen Sie Ihre Strategie via Netzwerk gegen eine andere spielen, indem Sie die '' | ||
=== Anleitung === | === Anleitung === | ||
Line 14: | Line 17: | ||
* In game.py: | * In game.py: | ||
* Die eigene Strategie importieren (ganz oben im Code, analog zu ivo_simple_strategy. | * Die eigene Strategie importieren (ganz oben im Code, analog zu ivo_simple_strategy. | ||
- | * Eigene Strategie ganz unten in game.py eintragen (min. 1 ivo_simple_strategy ersetzen). | + | * Eigene Strategie ganz unten in game.py eintragen (min. einmal |
* Code studieren, Fragen stellen. | * Code studieren, Fragen stellen. | ||
+ | === Video-Anleitung === | ||
+ | * https:// | ||
=== Dokumentation === | === Dokumentation === | ||
Line 31: | Line 36: | ||
Eine Strategie hat Zugriff auf folgende Informationen um den nächsten Schritt zu planen (d.h. welche der 4 Richtungen): | Eine Strategie hat Zugriff auf folgende Informationen um den nächsten Schritt zu planen (d.h. welche der 4 Richtungen): | ||
- | * self.params (Alle Informationen zum aktuellen Spielstand) | + | |
width (int): Breite des Spielfelds | width (int): Breite des Spielfelds | ||
height (int): Hoehe des Spielfelds | height (int): Hoehe des Spielfelds | ||
Line 50: | Line 55: | ||
So liefert z.B. '' | So liefert z.B. '' | ||
+ | Erklärungen: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | |||
+ | |||
+ | ===== Breitensuche zur Distanzberechnung (im Grid) ===== | ||
+ | Pseudo-Code (kann so nicht direkt in Python ausgeführt werden). | ||
+ | <code python> | ||
+ | dist[x][y] auf -1 initialisieren | ||
+ | |||
+ | dist[startpunkt] = 0 | ||
+ | todo = [startpunkt] | ||
+ | |||
+ | while (len(todo)> | ||
+ | aktuell = todo.pop(0) # Vorne entfernen | ||
+ | for nachbar in nachbarn(aktuell): | ||
+ | if dist[nachbar]==-1: | ||
+ | dist[nachbar] = dist[aktuell]+1 | ||
+ | todo.append(nachbar) | ||
+ | return dist | ||
+ | </ | ||