> Samouczek
Używaliśmy już kilku standardowych funkcji (setWeapon, moveToward itd.). Można również tworzyć swoje osobiste funkcje z następującą składnią:
functionsuma( x, y ){ x + y }Słowo kluczowe return, opcjonalne, służy do zwracania wartości przez funkcję. W poprzednim przykładzie funkcja przyjmuje parametry x i y i zwraca ich sumę: x + y.
canFinish(wrog)Nasz poprzedni kod do warunku "dobicia" wroga jest dość długi i mało wielokrotnego użytku, umieścimy go w funkcji.
Stworzymy osobistą funkcję canFinish(wrog), która przyjmuje wroga i zwraca wartość logiczną wskazującą, czy możemy go dobić, czy nie.
Przepisujemy kod finiszera w funkcji, która zapisuje się w ten sposób:
uwaga: pamiętaj, aby określić o jakiej broni mowa, żeby obliczenie zadziałało. Również funkcja zwraca prawdę, jeśli masz wystarczająco punktów akcji, aby oddać wystarczająco strzałów we wroga, żeby zginął, i false, jeśli przeciwnie, przeżyje (więc być może możesz zrobić coś innego).
Teraz możemy użyć naszej funkcji canFinish w naszym głównym kodzie, aby zapisać go znacznie prościej:
Czy wiedziałeś? Przeniesienie tego samego kodu wiele razy do funkcji nazywa się Faktoryzacją.
getClosestCellToUseWeapon(wrog)Być może zauważyłeś, że aby użyć broni Machine Gun lub później Laser, musisz być w linii z wrogiem.
Trzeba więc będzie iść na komórkę, z której będziesz mógł użyć swojej broni, zamiast po prostu iść w stronę wroga jak z Pistoletem.
W tym celu istnieje standardowa funkcja getCellsToUseWeapon, która zwraca wszystkie możliwe komórki do użycia broni na celu. Trzeba więc będzie wybrać jedną: najbliższą!
Stworzymy więc funkcję getClosestCellToUseWeapon i użyjemy pętli for in, aby obliczyć komórkę, której odległość od nas jest najkrótsza:
Używamy jej, aby zastąpić przemieszczenie moveToward:
Jeśli czujesz się komfortowo, możesz zakodować funkcje:
estimateDamage(weapon, wrog): oblicza obrażenia, które zada broń weapon na wrog.getBestWeapon(wrog): szuka wśród twoich broni tej, która zadaje najwięcej obrażeń na wrogMożesz także:
Aby lepiej widzieć teren i komórki, nie wahaj się użyć trybu taktycznego naciskając T w walce.
W następnych rozdziałach poruszymy trudniejsze aspekty, więc poświęć czas na zabawę swoimi funkcjami i pojęciami, które widzieliśmy wcześniej, które już wystarczają, aby pójść w górę w rankingu!
Która funkcja zwracająca kwadrat liczby jest poprawna?
function kwadrat(x) { return x * x } function kwadrat(x) { x * x } function kwadrat() { return x * x } fonction kwadrat(x) { return x * x }
Która funkcja oblicza maksimum listy?
function maksimum(lista) { var max = -99999 for (var e in lista) { if (e > max) { max = e } } return max } function maksimum(lista) { var max = 99999 for (var e in lista) { if (e < max) { max = e } } return max } function maksimum(lista) { var max = 99999 for (var e in lista) { if (e > max) { max = e } } return max } function maksimum(lista) { var max = -99999 for (var e in lista) { if (e < max) { max = e } } return max }
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.