> Samouczek
Używaliśmy już kilku funkcji i metod (setWeapon, moveToward itd.). Możesz też tworzyć własne funkcje za pomocą następującej składni:
functionsum( x, y ){ return x + y }Opcjonalne słowo kluczowe return sprawia, że funkcja zwraca wartość. W poprzednim przykładzie funkcja przyjmuje parametry x i y i zwraca ich sumę: x + y.
canFinish(enemy)Nasz poprzedni kod warunku „dobicia” wroga jest dość długi i trudno go użyć ponownie, więc umieścimy go w funkcji.
Stworzymy własną funkcję canFinish(enemy), która przyjmuje wroga i zwraca wartość logiczną mówiącą, czy możemy go dobić.
Przenosimy kod dobijania do funkcji, zapisanej tak:
Teraz możemy użyć funkcji canFinish w głównym kodzie, który staje się dzięki temu znacznie prostszy:
Czy wiesz, że przeniesienie kodu powtarzającego się w kilku miejscach do jednej funkcji nazywa się faktoryzacją?
getClosestCellToUseWeapon(enemy)Być może zauważyłeś, że aby użyć karabinu maszynowego albo później lasera, musisz stać w jednej linii z wrogiem.
Trzeba więc przejść na pole, z którego możesz użyć broni, zamiast po prostu iść w stronę wroga, jak w przypadku pistoletu.
Służy do tego metoda me.weaponCells(enemy), która zwraca wszystkie pola, z których możesz użyć broni na celu. Musimy wybrać jedno z nich: najbliższe!
Stworzymy więc funkcję getClosestCellToUseWeapon i użyjemy pętli for of, aby znaleźć pole położone najbliżej nas:
Używamy jej zamiast dotychczasowego ruchu:
Aby lepiej widzieć teren i jego pola, możesz w trakcie walki włączyć tryb taktyczny klawiszem T.
W kolejnych rozdziałach zajmiemy się trudniejszymi tematami, więc nie spiesz się i poeksperymentuj ze swoimi funkcjami i pojęciami, które do tej pory poznaliśmy: już one wystarczą, żeby piąć się w rankingu!
Która z tych funkcji poprawnie zwraca kwadrat liczby?
function square(x) { return x * x } function square(x) { x * x } function square() { return x * x } fonction square(x) { return x * x }
Która funkcja oblicza maksimum listy?
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.