kurse:ef05a-2021:js:projekte:snake

Differences

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

Link to this comparison view

kurse:ef05a-2021:js:projekte:snake [2022/03/05 15:51] – created Ivo Blöchligerkurse:ef05a-2021:js:projekte:snake [2022/03/05 15:52] (current) Ivo Blöchliger
Line 1: Line 1:
 +====== Snake ======
 +Minimalversion: Schlange wird immer länger (zieht den Schwanz nicht nach).
 +
 +  * Datenstruktur: 2-dimensionales Array  $n \times n$
 +<code javascript>
 +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))
 +</code>
 +
 +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 [[.:jumpnrun|Jump'n Run]]