Listy

Listy

> Samouczek

Lista pozwala przechowywać kilka wartości w określonej kolejności.

Tworzenie i użycie listy

Listę można utworzyć następującą składnią:

Pierwsza pozycja na liście to pozycja 0. Do konkretnego elementu listy mamy dostęp przez:

Liczne funkcje są dostępne do manipulowania listami, w sekcji "Listy" dokumentacji. Najbardziej godne uwagi to:

Iteracja po liście z pętlą for in

Można iterować po każdej z wartości listy używając zwykłej pętli for, w ten sposób:

Ale istnieje wariant pętli for, który pozwala iterować po każdej z wartości listy prościej, pętla for in. Następujący kod jest równoważny poprzedniemu, będąc bardziej zwięzłym:

Ocena obrażeń broni i warunek "finisher"

Nasze obecne AI ma problem, który być może zauważyłeś: gdy wróg jest prawie martwy, nasz por będzie używał swoich boostów, leczeń, tarcz przed użyciem swojej broni, podczas gdy mógłby dobić wroga!

Aby poprawić tę sytuację końca walki, oszacujemy obrażenia, które możemy zadać wrogowi, aby wiedzieć czy możemy go dobić.

Zaczynamy od użycia funkcji getWeaponEffects, która podaje listę efektów broni:

Efekt sam w sobie jest listą zawierającą następujące 6 elementów: [type, min, max, turns, targets, modifiers]. Obliczamy końcowe obrażenia dla tego efektu:

Dodajemy obrażenia do sumy:

Kończymy warunkiem: jeśli całkowite obrażenia są większe niż życie wroga, zabijemy go: atakujemy! W przeciwnym razie czekamy z chipami:

> Wskazówka: można uzyskać dostęp do zakresu listy używając składni lista[2:8].

> Wskazówka: można zagnieżdżać listy: lista w liście [ [1, 2, 3] ] i dostęp do listy w liście: lista[0][0]

❓ Quiz

Do czego może służyć lista?

Przechowywać kilka wartości Sortować wartości Wykonywać instrukcje równolegle Wykonywać kilka obliczeń

Które kody są poprawne?

var a = [1, 2, 3] a[0] + a[2] var [a] = [1, 2] var [1, 2, 3] count([1, 2, 3]) [ [1, 2], [3, 4], [5, 6] ] lista[5][10]

Pełna AI