lehrkraefte:blc:informatik:ffprg1-2020:snake

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
Next revision Both sides next revision
lehrkraefte:blc:informatik:ffprg1-2020:snake [2020/05/04 17:05]
Ivo Blöchliger [Aufbau des Spiels]
lehrkraefte:blc:informatik:ffprg1-2020:snake [2020/06/29 17:14]
Ivo Blöchliger
Line 1: Line 1:
 ====== Snake ====== ====== Snake ======
-Programmieren Sie eine Strategie, die die Schlange steuert.+Programmieren Sie eine Strategie, die die Schlange steuert. {{ :lehrkraefte:blc:informatik:ffprg1-2018:screenshot.png|}} 
 + 
 +Ziel ist es, diese Strategien in einem Tournier gegeneinander antreten zu lassen.
  
 {{ :lehrkraefte:blc:informatik:ffprg1-2020:tjsnake.zip |Source-Code}} {{ :lehrkraefte:blc:informatik:ffprg1-2020:tjsnake.zip |Source-Code}}
 +
 +=== Spiel via Netzwerk ===
 +Lassen Sie Ihre Strategie via Netzwerk gegen eine andere spielen, indem Sie die ''NetworkStrategy'' einbauen (neu in obigem Archiv enthalten). Lassen Sie mir Ihre Strategie zukommen, ich werde diese einbauen, damit alle gegen diese spielen können.
  
 === Anleitung === === Anleitung ===
Line 15: Line 20:
   * Code studieren, Fragen stellen.   * Code studieren, Fragen stellen.
  
 +=== Video-Anleitung ===
 +  * https://fginfo.ksbg.ch/~ivo/videos/tjsnake.mp4
  
 === Dokumentation === === Dokumentation ===
Line 48: Line 55:
 So liefert z.B. ''self.params.apple[0]'' die $x$-Koordinate des Apfels oder ''self.params.feld[3][7]'' den Inhalt vom Spielfeld an der Position (3,7), oder ''self.params.heads[0][0]'' und ''self.params.heads[0][0]'' die $x$- und $y$-Koordinaten einer Schlange (eine gegnerische oder die eigene). So liefert z.B. ''self.params.apple[0]'' die $x$-Koordinate des Apfels oder ''self.params.feld[3][7]'' den Inhalt vom Spielfeld an der Position (3,7), oder ''self.params.heads[0][0]'' und ''self.params.heads[0][0]'' die $x$- und $y$-Koordinaten einer Schlange (eine gegnerische oder die eigene).
  
 +
 +===== 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)>0):
 +    aktuell = todo.pop(0) # Vorne entfernen
 +    for nachbar in nachbarn(aktuell):
 +        if dist[nachbar]==-1: # Noch offen?
 +            dist[nachbar] = dist[aktuell]+1
 +            todo.append(nachbar)
 +return dist
 +</code>
  
  
  • lehrkraefte/blc/informatik/ffprg1-2020/snake.txt
  • Last modified: 2021/04/28 14:11
  • by Ivo Blöchliger