Stwórz swoje funkcje

Stwórz swoje funkcje

> Samouczek

Tworzenie funkcji

Używaliśmy już kilku standardowych funkcji (setWeapon, moveToward itd.). Można również tworzyć swoje osobiste funkcje z następującą składnią:

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.

Tworzenie funkcji 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ą.

Tworzenie funkcji 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:

Moż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!

❓ Quiz

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 }

Pełna AI