Stoły

Stoły

> LeekScript samouczek

Z pewnością znasz analogię między zmiennymi komputerowymi a pudełkami: nazwa zmiennej znajduje się na etykiecie pudełka; kiedy wywołujesz zmienną, po prostu patrzysz na to, co jest w pudełku.

Cóż, możemy zrobić podobną analogię między obrazami a komodą. Komoda to mebel, który zawiera kilka szuflad… stół to całość, która zawiera kilka zmiennych. Schematycznie to wszystko.

Zainicjuj tablicę

Tablica jest reprezentowana przez nawiasy kwadratowe. Poniższy przykład tworzy pustą tablicę:

var foo = [];

Rozpoznajemy słowo kluczowe var, którego już używamy dla zmiennych. foo jest zatem zmienną typu tablicowego.

var owoc = ["gruszka", "banan", "jabłko"];

Tutaj zainicjowaliśmy tablicę z 3 wartościami. Zasadniczo umieszczamy łańcuszek „gruszka” w pierwszej szufladzie, „banan” w drugiej i „jabłko” w trzeciej. Gdybyśmy odwrócili pierwsze 2 owoce, mielibyśmy inny obraz.

Przyjemnie jest posprzątać, ale trzeba umieć z tego korzystać... Cóż, to proste, jeśli wiesz, jak liczyć od 0 (ponieważ w informatyce lubimy liczyć od zera!)

Pierwsza szuflada nosi numer 0, druga numer 1, a trzecia numer 2. Gdybyśmy mieli stół ze 100 komórkami, ostatnia nosiłaby numer 99. Dobra, co teraz? To proste, aby użyć ramki, po prostu podaj jej numer w nawiasach kwadratowych:

debug(owoc[1]);

W tym przykładzie zostanie zatem wyświetlone pole numer 1 (a więc drugie pole) tabeli o nazwie owoce. Tutaj wyświetli zatem ciąg „banan”.

Co jeśli chcemy zmienić wartość? Nic prostszego, robimy jak dla zmiennych, zawsze określając pole do modyfikacji:

owoc[1] = "wiśnia"; debuguj (owoc); // wyświetli ["gruszka", "wiśnia", "jabłko"]

Proste, prawda?

Co jeśli poproszę o pudełko, które nie istnieje? Rodzaj w poprzednim przykładzie, proszę o owoce [3]?

Dobrze widać! Trzecie pudełko to numer 2, więc pudełko numer 3 nie istnieje! W takim przypadku zwracana jest wartość ''null''.

Cóż, wypróbowałem twoje rzeczy z poniższym kodem i pokazuje dziwne rzeczy, wygląda na to, że wszystko zepsułem!

var owoc = ["gruszka", "banan", "jabłko"]; debuguj (owoc); // wyświetli ["gruszka", "banan", "jabłko"] owoc[3] = "ananas"; debuguj (owoc); // wyświetli ["gruszka", "banan", "jabłko", "ananas"] owoc[50] = "wiśnia"; debuguj (owoc); // wyświetli [0:"gruszka", 1:"banan", 2:"jabłko", 3:"ananas, 50:"wiśnia"]

Nie martw się, młody Padawanie, niczego nie złamałeś! Ponieważ pola między ostatnim elementem tablicy (numer 3) a tym, który chcesz dodać (numer 50) nie istnieją, leekscript zamienił twoją tablicę w tablicę asocjacyjną. Wyjaśnię ci to na końcu tego samouczka. Na razie weź pod uwagę, że jest to normalna tabela, w której jest dziura w numeracji komórek.

Niektóre funkcje leekwars bezpośrednio dają nam tablicę. Tak jest na przykład w przypadku funkcji getAliveEnemies.

Przeglądaj tabelę

Wszystko bardzo dobrze. Teraz wiem, jak tworzyć tabele, ale jak na przykład wyświetlać nazwy wszystkich przeciwnicy? Nie wiem ile ich jest i nie zamierzam robić wszystkiego ręcznie!

Efektywnie. Pierwszym pomysłem byłoby zrobienie

var wrogowie = getAliveEnemies(); debug( getName(enemies[0]) ); debug( getName(enemies[1]) ); debug( getName(enemies[2]) ); debug( getName(enemies[3]) ); debug( getName(enemies[4]) );

Ale jeśli jest więcej niż 5 wrogów, będzie ich brak, a jeśli będzie ich mniej, pojawią się dodatkowe linie! Aby dowiedzieć się, ile kwadratów ma tablica, funkcja to liczba.

var nbWrogowie = liczba(wrogowie); debug("wrogowie " + nbEnemies + " wciąż żyją.");

Jak przejść przez stół bez szamotaniny? Na przykład, jeśli chcesz wiedzieć, gdzie na mapie znajdują się przeszkody, getObstacles jest dla Ciebie... Ale na stole jest około stu pudełek... niepraktyczne robić je jedno po drugim! Właśnie teraz Les Boucles ujawniają swój pełny potencjał!

var przeszkody = getPrzeszkody(); var nbPrzeszkody = liczba(przeszkody);

for (var k=0; k<nbPrzeszkody; k++) { debug("pole " + przeszkody [k] + " to przeszkoda."); }

Aby uzyskać większą precyzję, wróć do samouczka w The Loops.

Więc dla nazwy wrogów, cały scenariusz byłby

var wrogowie = getAliveEnemies(); var nbWrogowie = liczba(wrogowie); for (var k=0; k<nbWrogowie; k++) { var nazwa_wroga = getNazwa( wrogowie[k] ); debug( nazwa_wroga + "wciąż żyje."); }

Dodawanie i usuwanie elementów

Widzieliśmy już, jak dodać element do tablicy, ale nie jest to praktyczne, ponieważ musisz to robić ciągle Odwołaj się do rozmiaru tablicy.

Aby ułatwić sobie życie, możesz po prostu użyć funkcji push.

var owoc = ["gruszka", "banan", "jabłko"]; pchać (f