5Bewegung in die Schlange bringen (Schleifen)
Nun da unsere Steuerung funktioniert, ist es an der Zeit die Schlange zu bewegen und zu zeichnen. Dazu musst du erstmal definieren wie dein Spielfeld aufgebaut ist. In unserem Fall teilen wir das Spielfeld in quadratische Kacheln (Tiles) ein. Das Spielfeld ist 20x20 Kacheln groß.
Das macht uns die Positionierung des Schlangenkopfs, der Äpfel und des Schwanzes einfacher, weil wir uns nicht um Pixel-Werte kümmern, sondern nur sagen, auf welcher Kachel sich das Teil befindet.
Um Programmabläufe wiederholt auszuführen, gibt es in fast allen höheren Programmiersprachen eine eigene Kontrollstruktur. Kontrollstrukturen steuern den Ablauf eines Programmes z.B. durch Entscheidungen. Gleich zwei unterschiedliche sogenannte Schleifen schauen wir uns jetzt etwas genauer an.
Wenn vor Beginn der Schleife bekannt ist, wie viele Wiederholungen gemacht werden sollen, dann eignet sich Zählschleife sehr gut. Sie wird in fast allen Programmiersprachen mit dem Schlüsselwort for gekennzeichnet und darum oft for-Schleife genannt.
Eine for-Schleife benötigt zur Steuerung drei Dinge.
Zählvariable: eine lokale Variable, die im Schleifenkopf deklariert und initialisiert wird. Ihr Wert wird nach jeder Wiederholung verändert und sie kann im Codeblock der wiederholt wird wie eine normale Variable verwendet werden. z.B. let i = 2
Schleifenbedingung: eine Bedingung, die angibt, wann der Codeblock ausgeführt bzw. wiederholt werden kann. z.B. i <= 8
Schrittweite: die Veränderung der Zählvariable nach jeder Wiederholung z.B. i = i +2
for (let i = 2; i <= 8; i = i + 2){
console.log(i)
}
Das Beispiel würde von 2 bis 8 zählen und nach jeder Wiederholung die Zählvariable um 2 erhöhen. In jeder Wiederholung wird der Wert der Zählvariable ausgegeben. Was wird ausgegeben?
Manchmal kann vorab nicht bestimmt werden, wie oft eine Schleife wiederholt werden muss. Dann ist eine Zählschleife nicht flexibel genug.
Zu diesem Zweck gibt es eine bedingte Schleife (manchmal auch kopfgesteuerte Schleife genannt). In den meisten Programmiersprachen, die von der Programmiersprache C abstammen, wird sie mit dem Signalwort while definiert und darum oft auch while-Schleife genannt.
Im Kopf einer while-Schleife wird lediglich eine Schleifenbedingung angegeben. Ist die Bedingung wahr (true), dann wird der Codeblock ausgeführt bzw. wiederholt. Die Bedingung kann dabei, wie bei einer Entscheidung (if), das Ergebnis eines Vergleichs oder ein Wert sein.
Im folgende Beispiel siehst du zwei while-Schleifen. Versuch zu verstehen, was das Programm macht.
let fahren = true
let tank = 50
while (fahren){
if(tank < 10){
console.log("Reserve!")
fahren = false
}
tank = tank - 2
}
while(tank < 100){
tank += 0.5
}
Wenn du mehr Informationen zum Thema Schleifen haben möchtest, findest du hier noch jede Menge zusätzliche Informationen: