Snake
Minimalversion: Schlange wird immer länger (zieht den Schwanz nicht nach).
- Datenstruktur: 2-dimensionales Array $n \times n$
const n = 20; // legt ein n mal n Array an, mit Nullen gefüllt. let feld = (new Array(n)).fill(0).map(()=>(new Array(n)).fill(0))
Damit die Schlange den Schwanz nachziehen kann, speichern man die Koordinaten (als Arrays mit 2 Elementen) in ein Array p
.
Mit p.push([x,y])
wird einen neue Koordinate angehängt. Mit p=p.slice(1)
wird das erste Element entfernt. Soll die Schlange länger werden, wird die aktuelle Position einfach mehrfach anghängt.
UI
Tabelle mit $n \times n$ Zellen, die per CSS quadratisch gemacht werden und deren Hintergrundfarbe man setzen kann (element.style.backgroundcolor=“#00f”;
)
Tastenabfrage, siehe Jump'n Run