De tafels

De tafels

> LeekScript-zelfstudie

U kent ongetwijfeld de analogie tussen computervariabelen en boxen: de naam van de variabele staat op het label van de box; als je de variabele aanroept, kijk je gewoon naar wat er in de doos zit.

Welnu, we kunnen een vergelijkbare analogie maken tussen schilderijen en een ladekast. Een ladekast is een meubelstuk dat meerdere lades bevat... een tafel is een geheel dat meerdere variabelen bevat. Schematisch, dat is alles.

Initialiseer een array

Een array wordt weergegeven door vierkante haken. In het onderstaande voorbeeld wordt een lege array gemaakt:

var foo = [];

We herkennen het sleutelwoord var dat we al gebruiken voor variabelen. foo is daarom een variabele van het type array.

var fruit = ["peer", "banaan", "appel"];

Hier hebben we de array geïnitialiseerd met 3 waarden. Kortom, we leggen de ketting "peer" in de eerste la, "banaan" in de tweede en "appel" in de derde. Als we de eerste 2 vruchten hadden omgedraaid, hadden we een ander beeld gehad.

Het is leuk om op te ruimen, maar je moet weten hoe je het moet gebruiken... Nou, het is eenvoudig als je weet hoe je vanaf 0 moet tellen (want bij computers tellen we graag vanaf nul!)

De eerste lade draagt het cijfer 0, de tweede het cijfer 1 en de derde het cijfer 2. Als we een tabel met 100 cellen zouden hebben, zou de laatste dus het cijfer 99 dragen. Oké, wat nu? Het is eenvoudig, om een vak te gebruiken, geeft u gewoon het nummer tussen vierkante haken aan:

debuggen(fruit[1]);

In dit voorbeeld wordt daarom vak nummer 1 weergegeven (het tweede vak dus) van de tabel met de naam fruit. Hier zal het daarom de string "banaan" weergeven.

Wat als we de waarde willen wijzigen? Niets is eenvoudiger, we doen wat de variabelen betreft, waarbij we altijd het vak specificeren dat moet worden gewijzigd:

fruit[1] = "kers"; debuggen(fruit); // geeft uitvoer ["peer", "kers", "appel"]

Eenvoudig, toch?

Wat als ik vraag om een doos die niet bestaat? Soort in het vorige voorbeeld, ik vraag fruit[3]?

Goed gezien! Het derde vak is nummer 2, dus vak nummer 3 bestaat niet! In dit geval wordt de waarde ''null'' geretourneerd.

Nou, ik heb je ding geprobeerd met de onderstaande code en het laat rare dingen zien, het lijkt erop dat ik alles kapot heb gemaakt!

var fruit = ["peer", "banaan", "appel"]; debuggen(fruit); // geeft uitvoer ["peer", "banaan", "appel"] fruit[3] = "ananas"; debuggen(fruit); // geeft uitvoer ["peer", "banaan", "appel", "ananas"] fruit[50] = "kers"; debuggen(fruit); // geeft uitvoer [0:"peer", 1:"banaan", 2:"appel", 3:"ananas, 50:"kers"]

Maak je geen zorgen, jonge Padawan, je hebt helemaal niets gebroken! Aangezien de vakken tussen het laatste element van de array (nummer 3) en degene die u wilt toevoegen (nummer 50) niet bestaan, is het preiscript veranderde je array in een associatieve array. Dat leg ik je uit aan het einde van deze tutorial. Bedenk op dit moment dat het een normale tabel is met een gat in de nummering van de cellen.

Sommige preiwars-functies geven ons direct een array. Dit is bijvoorbeeld het geval bij de functie getAliveEnemies.

Blader door een tabel

Allemaal heel goed. Nu weet ik hoe ik tabellen moet maken, maar hoe kan ik bijvoorbeeld de namen van alle tabellen weergeven tegenstanders? Ik weet niet hoeveel het er zijn en ik ga niet alles met de hand doen!

Effectief. Het eerste idee zou zijn om te doen

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

Maar als er meer dan 5 vijanden zijn, is er een tekort, en als er minder zijn, zijn er extra lijnen! Om erachter te komen hoeveel kwadraten een array heeft, is de functie count.

var nbVijanden = aantal(vijanden); debug("er zijn " + nbVijanden + " vijanden nog in leven.");

Nu, hoe de tafel te doorkruisen zonder te worstelen? Als je bijvoorbeeld wilt weten waar de obstakels zich op de kaart bevinden, is getObstacles iets voor jou... Maar de tafel heeft ongeveer honderd dozen... niet praktisch om één voor één te doen! Het is nu dat de Les Boucles hun volledige potentieel onthullen!

var obstakels = haalObstacles(); var nbHindernissen = aantal(obstakels);

voor (var k=0; k<nbObstakels; k++) { debug("box " + obstakels[k] + " is een obstakel."); }

Ga voor meer precisie terug naar de tutorial over The Loops.

Dus voor de naam van de vijanden zou het hele script zijn

var vijanden = getAliveEnemies(); var nbVijanden = aantal(vijanden); voor (var k=0; k<nbVijanden; k++) { var vijandNaam = getNaam(vijanden[k] ); debug( naam vijand + " leeft nog."); }

Elementen toevoegen en verwijderen

We hebben al gezien hoe je een element in een array kunt toevoegen, maar het is niet praktisch omdat je het constant moet doen een beroep doen op de grootte van de array.

Om het leven gemakkelijker te maken, kunt u gewoon de push-functie gebruiken.

var fruit = ["peer", "banaan", "appel"]; duwen (vb