lehrkraefte:blc:informatik:ffprg1-2024:raster-snake:tail

Schwanz nachziehen

Grundidee: Alle Positionen (und Richtungen!) des Schlangenkörpers in einem Array positions speichern. Einträge entsprechend entfernen und hinzufügen. Konvention: Kopf an Position 0, Schwanz an letzter Stelle.

Einträge sollen Objects der Form {x:3, y:7, d:1} sein, mit x,y Koordinaten und Richtung d (von 0 bis 3).

Eintrag an Stelle 0 hinzufügen:

positions.unshift({x:3, y:7, d:1}); // An Position 0 einfügen

Eintrag an letzter Stelle löschen:

let pos = positions.pop();  // An letzter Position löschen und in Variable speichern.

Weitere Array-Methoden sind push (hinten anfügen), shift (vorne entfernen) und das Universaltaschenmesser splice.

Siehe auch auf MDN.

Wir können Variablen direkt zu Positionen in einem Array oder zu Schlüsseln in einem Objekt zuweisen:

let [vx,vy] = [3,-5];
let position = {x:3, y:7, d:1};
let {x,y,d} = position;  // Reihenfolge nicht relevant, es müssen auch nicht alle keys verwendet werden.

Wir programmieren eine Funktion schwanzNachziehen, die von der Funktion step aufgerufen wird, und zwar bevor die Schlange weiterzieht (sonst könnte man einen Unfall festellen, wo aber der Schwanz gar nicht mehr wäre).

Screencast

  • lehrkraefte/blc/informatik/ffprg1-2024/raster-snake/tail.txt
  • Last modified: 2024/05/23 09:35
  • by Ivo Blöchliger