> Lernprogramm
Wir haben schon mehrere Funktionen und Methoden verwendet (setWeapon, moveToward usw.). Du kannst auch deine eigenen Funktionen erstellen, mit folgender Syntax:
functionsum( x, y ){ return x + y }Mit dem optionalen Schlüsselwort return gibt die Funktion einen Wert zurück. Im vorigen Beispiel nimmt die Funktion die Parameter x und y entgegen und gibt ihre Summe zurück: x + y.
canFinish(enemy) erstellenUnser bisheriger Code für die Bedingung „Gnadenstoß“ ist ziemlich lang und schwer wiederzuverwenden, also packen wir ihn in eine Funktion.
Wir erstellen unsere eigene Funktion canFinish(enemy), die einen Gegner entgegennimmt und einen booleschen Wert zurückgibt, der angibt, ob wir ihn erledigen können oder nicht.
Wir kopieren den Code für den Gnadenstoß in eine Funktion, die so aussieht:
Jetzt können wir unsere Funktion canFinish in unserem Hauptcode verwenden, der dadurch viel einfacher wird:
Schon gewusst? Code, der sich an mehreren Stellen wiederholt, in eine einzige Funktion auszulagern, nennt man Faktorisieren.
getClosestCellToUseWeapon(enemy) erstellenDir ist vielleicht aufgefallen, dass du für das Maschinengewehr oder später den Laser mit dem Gegner in einer Linie stehen musst.
Du musst also auf ein Feld gehen, von dem aus du deine Waffe einsetzen kannst, statt einfach wie mit der Pistole auf den Gegner zuzugehen.
Dafür gibt die Methode me.weaponCells(enemy) alle Felder zurück, von denen aus du deine Waffe gegen ein Ziel einsetzen kannst. Wir müssen eines davon auswählen: das nächstgelegene!
Wir erstellen also eine Funktion getClosestCellToUseWeapon und verwenden eine for of-Schleife, um das Feld mit der kürzesten Entfernung zu uns zu finden:
Damit ersetzen wir die Bewegung:
Um das Gelände und seine Felder besser zu sehen, nutze ruhig den taktischen Modus, indem du während eines Kampfes T drückst.
In den nächsten Kapiteln gehen wir schwierigere Themen an. Nimm dir also Zeit, mit deinen Funktionen und den bisher behandelten Konzepten herumzuprobieren: Sie reichen schon aus, um in der Rangliste aufzusteigen!
Welche dieser Funktionen gibt das Quadrat einer Zahl korrekt zurück?
function square(x) { return x * x } function square(x) { x * x } function square() { return x * x } fonction square(x) { return x * x }
Welche Funktion berechnet das Maximum einer Liste?
function maximum(list) { let maxi = -99999 for (const e of list) { if (e > maxi) { maxi = e } } return maxi } function maximum(list) { let maxi = 99999 for (const e of list) { if (e < maxi) { maxi = e } } return maxi } function maximum(list) { let maxi = 99999 for (const e of list) { if (e > maxi) { maxi = e } } return maxi } function maximum(list) { let maxi = -99999 for (const e of list) { if (e < maxi) { maxi = e } } return maxi }
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.