> LeekScript-opetusohjelma
Tiedät varmasti analogian tietokonemuuttujien ja laatikoiden välillä: Muuttujan nimi on laatikon etiketissä; kun kutsut muuttujaa, katsot vain mitä laatikossa on.
No, voimme tehdä samanlaisen analogian maalausten ja lipaston välillä. Lipasto on huonekalu, joka sisältää useita laatikoita... pöytä on kokonaisuus, joka sisältää useita muuttujia. Kaavamaisesti siinä kaikki.
Taulukko esitetään hakasulkeilla. Alla oleva esimerkki luo tyhjän taulukon:
var foo = [];
Tunnistamme avainsanan var, jota jo käytämme muuttujille. foo on siksi taulukkotyyppinen muuttuja.
var hedelmä = ["päärynä", "banaani", "omena"];
Tässä olemme alustaneet taulukon 3 arvolla. Periaatteessa laitamme ketjun "päärynä" ensimmäiseen laatikkoon, "banaani" toiseen ja "omena" kolmanteen. Jos olisimme kääntäneet kaksi ensimmäistä hedelmää toisinpäin, meillä olisi ollut erilainen kuva.
Se on kiva siivota, mutta sitä pitää osata käyttää... No, se on yksinkertaista, jos osaat laskea nollasta (koska tietojenkäsittelyssä haluamme laskea nollasta!)
Ensimmäisessä laatikossa on numero 0, toisessa numero 1 ja kolmannessa numero 2. Jos meillä olisi 100 solun taulukko, viimeisessä olisi siis numero 99. Okei, mitä nyt? Se on yksinkertaista, jos haluat käyttää ruutua, merkitse sen numero hakasulkeiden väliin:
debug(hedelmä[1] );
Tässä esimerkissä näkyy siksi hedelmät-nimisen taulukon laatikko numero 1 (toinen laatikko). Tässä se näyttää siis merkkijonon "banaani".
Entä jos haluamme muuttaa arvoa? Mikään ei voisi olla yksinkertaisempaa, teemme samoin kuin muuttujat, määritämme aina muokattavan ruudun:
hedelmä[1] = "kirsikka"; debug(hedelmä); // tulostaa ["päärynä", "kirsikka", "omena"]
Yksinkertaista, eikö?
Entä jos pyydän laatikkoa, jota ei ole olemassa? Ystävällinen edellisessä esimerkissä, kysyn hedelmää[3]?
Hyvin nähty! Kolmas laatikko on numero 2, joten laatikkoa numero 3 ei ole olemassa! Tässä tapauksessa palautetaan arvo "null".
No, kokeilin juttuasi alla olevalla koodilla ja se näyttää outoja juttuja, näyttää siltä, että olisin rikkonut kaiken!
var hedelmä = ["päärynä", "banaani", "omena"]; debug(hedelmä); // tulostaa ["päärynä", "banaani", "omena"] hedelmä[3] = "ananas"; debug(hedelmä); // tulostaa ["päärynä", "banaani", "omena", "ananas"] hedelmä[50] = "kirsikka"; debug(hedelmä); // tulostaa [0:"päärynä", 1:"banaani", 2:"omena", 3:"ananas, 50:"kirsikka"]
Älä huoli, nuori Padawan, et ole rikkonut yhtään mitään! Koska taulukon viimeisen elementin (numero 3) ja lisättävän elementin (numero 50) välillä ei ole ruutuja, purjoscript muutti taulukon assosiatiiviseksi taulukoksi. Selitän sen sinulle tämän opetusohjelman lopussa. Ajattele tällä hetkellä, että se on normaali taulukko, jossa laatikoiden numeroinnissa on reikä.
Jotkut leekwars-funktiot antavat meille suoraan taulukon. Tämä on esimerkiksi getAliveEnemies-funktion tapaus.
vastustajat? En tiedä kuinka monta niitä on, enkä aio tehdä kaikkea käsin!*
Tehokkaasti. Ensimmäinen idea olisi tehdä
var enemies = getAliveEnemies(); debug( getName(viholliset[0]) ); debug( getName(viholliset[1]) ); debug( getName(viholliset[2]) ); debug( getName(viholliset[3]) ); debug( getName(viholliset[4]) );
Mutta jos vihollisia on enemmän kuin 5, on pulaa, ja jos on vähemmän, on ylimääräisiä rivejä! Jotta saadaan selville, kuinka monta neliötä taulukossa on, funktio on count.
var nbEnemies = count(viholliset); debug("on " + nbEnemies + " vihollisia vielä elossa.");
Kuinka kulkea pöydän yli ilman kamppailua? Jos esimerkiksi haluat tietää missä esteet ovat kartalla, getObstacles on sinua varten... Mutta pöydässä on noin sata laatikkoa... ei ole käytännöllistä tehdä yksitellen! Nyt Les Boucles paljastaa täyden potentiaalinsa!
var esteet = getObstacles(); var nbEsteet = count(esteet);
for (var k=0; k<nbEsteet; k++) { debug("laatikko " + esteet[k] + " on este."); }
Jos haluat lisätietoja, palaa The Loops-oppaaseen.
Joten vihollisten nimissä koko käsikirjoitus olisi
var enemies = getAliveEnemies(); var nbEnemies = count(viholliset); for (var k=0; k<nbViholliset; k++) { var vihollisenNimi = getName( viholliset[k] ); debug( enemyName + " on edelleen elossa."); }
Olemme jo nähneet kuinka elementti lisätään taulukkoon, mutta se ei ole käytännöllistä, koska sinun on tehtävä jatkuvasti vetoaa taulukon kokoon.
Elämän helpottamiseksi voit käyttää push-toimintoa.
var hedelmä = ["päärynä", "banaani", "omena"]; push(f
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.