> LeekScript handledning
Du känner säkert till analogin mellan datorvariabler och rutor: Variabelns namn står på etiketten på lådan; när du anropar variabeln tittar du bara på vad som finns i rutan.
Tja, vi kan göra en liknande analogi mellan målningar och en byrå. En byrå är en möbel som innehåller flera lådor... ett bord är en enhet som innehåller flera variabler. Schematiskt är det allt.
En matris representeras av hakparenteser. Exemplet nedan skapar en tom array:
var foo = [];
Vi känner igen nyckelordet var som vi redan använder för variabler. foo är därför en variabel av arraytyp.
var fruit = ["päron", "banan", "äpple"];
Här har vi initierat arrayen med 3 värden. I grund och botten lägger vi kedjan "päron" i den första lådan, "banan" i den andra och "äpple" i den tredje. Om vi hade vänt om de två första frukterna hade vi fått en annan bild.
Det är skönt att städa, men man måste veta hur man använder det... Tja, det är enkelt om du vet hur man räknar från 0 (eftersom i datoranvändning gillar vi att räkna från noll!)
Den första lådan bär siffran 0, den andra siffran 1 och den tredje siffran 2. Om vi hade en tabell med 100 celler skulle den sista därför bära siffran 99. Okej, vad nu? Det är enkelt, att använda en ruta, ange bara dess nummer mellan hakparenteser:
debug( frukt[1] );
Detta exempel kommer därför att visa ruta nummer 1 (den andra rutan, alltså) i tabellen som kallas frukter. Här kommer den därför att visa strängen "banan".
Vad händer om vi vill ändra värdet? Inget kan vara enklare, vi gör som för variablerna och anger alltid rutan som ska ändras:
frukt[1] = "körsbär"; debug( frukt ); // kommer att mata ut ["päron", "körsbär", "äpple"]
Enkelt, eller hur?
Vad händer om jag ber om en låda som inte finns? Typ i föregående exempel, jag frågar frukt[3]?
Väl sett! Den tredje rutan är nummer 2, så ruta nummer 3 finns inte! I detta fall returneras värdet ''null''.
Tja, jag provade din grej med koden nedan och den visar konstiga saker, det ser ut som om jag har brutit allt!
var fruit = ["päron", "banan", "äpple"]; debug( frukt ); // kommer att mata ut ["päron", "banan", "äpple"] frukt[3] = "ananas"; debug( frukt ); // kommer att mata ut ["päron", "banan", "äpple", "ananas"] frukt[50] = "körsbär"; debug( frukt ); // kommer att mata ut [0:"päron", 1:"banan", 2:"äpple", 3:"ananas, 50:"körsbär"]
Oroa dig inte, unge Padawan, du har inte brutit någonting alls! Eftersom rutorna mellan det sista elementet i arrayen (nummer 3) och den du vill lägga till (nummer 50) inte existerar, finns leekscriptet förvandlade din array till en associativ array. Jag ska förklara det för dig i slutet av denna handledning. För tillfället, tänk på att det är en normal tabell där det finns ett hål i numreringen av cellerna.
Vissa leewars-funktioner ger oss direkt en array. Detta är till exempel fallet med funktionen getAliveEnemies.
Allt mycket bra. Nu vet jag hur man skapar tabeller men hur visar jag till exempel namnen på alla motståndare? Jag vet inte hur många det är och jag tänker inte göra allt för hand!
Effektivt. Den första idén skulle vara att göra
var enemies = getAliveEnemies(); debug( getName(enemies[0]) ); debug( getName(enemies[1]) ); debug( getName(enemies[2]) ); debug( getName(enemies[3])); debug( getName(enemies[4]));
Men om det finns fler än 5 fiender kommer det att bli brist, och om det finns färre så finns det extra rader! För att ta reda på hur många kvadrater en array har är funktionen count.
var nbEnemies = count(enemies); debug("det finns " + nbEnemies + " fiender som fortfarande lever.");
Nu, hur går man igenom bordet utan att kämpa? Om du till exempel vill veta var hindren finns på kartan är getObstacles något för dig... Men bordet har ett hundratal lådor... inte praktiskt att göra en och en! Det är nu som Les Boucles avslöjar sin fulla potential!
var obstacles = getObstacles(); var nbObstacles = count(hinder);
for (var k=0; k<nbObstacles; k++) { debug("box " + hinder[k] + " är ett hinder."); }
För mer precision, gå tillbaka till handledningen om The Loops.
Så för namnet på fienderna skulle hela manuset vara
var enemies = getAliveEnemies(); var nbEnemies = count(enemies); för (var k=0; k<nbEnemies; k++) { var fiendenamn = getName( fiender[k] ); debug( fiendenamn + " är fortfarande vid liv."); }
Vi har redan sett hur man lägger till ett element i en array men det är inte praktiskt eftersom du måste göra det hela tiden vädja till storleken på arrayen.
För att göra livet enklare kan du helt enkelt använda push-funktionen.
var fruit = ["päron", "banan", "äpple"]; push(f
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.