> Tutorial
Olemme jo käyttäneet useita vakiotoimintoja (setWeapon, moveToward jne.). On myös mahdollista luoda omia toimintoja seuraavalla syntaksilla:
functionsumma( x, y ){ x + y }Valinnaista avainsanaa return käytetään palauttamaan arvo toiminnolta. Edellisessä esimerkissä toiminto ottaa parametrit x ja y ja palauttaa niiden summan: x + y.
canFinish(enemy) luominenAiempi koodimme vihollisen "finish"-ehtoa varten on melko suuri eikä kovin uudelleenkäytettävä, joten laitamme sen toimintoon.
Aiomme luoda oman toiminnon canFinish(vihollinen), joka ottaa vihollisen ja palauttaa booleanin, joka kertoo, voimmeko viimeistellä hänet vai emme.
Kopioimme viimeistelijän koodin toimintoon, joka kirjoitetaan näin:
huom: muista määrittää, mistä aseesta on kyse, jotta laskenta toimii. Toiminto palauttaa myös true, jos sinulla on tarpeeksi vuoropisteitä ampuaksesi tarpeeksi laukauksia viholliseen niin että hän kuolee, ja false jos hän päinvastoin selviää (jolloin voit ehkä tehdä jotain muuta).
Nyt voimme käyttää toimintoamme canFinish pääkoodissamme kirjoittaaksemme sen paljon yksinkertaisemmin:
Tiesitkö? Saman koodin siirtämistä useaan kertaan toimintoon kutsutaan Faktorointi.
getClosestCellToUseWeapon(enemy) luominenOlet ehkä huomannut, että käyttääksesi asetta Machine Gun tai myöhemmin Laser, sinun on oltava linjassa vihollisen kanssa.
Sinun täytyy siis mennä soluun, josta voit käyttää asettasi, sen sijaan että vain etenisit kohti vihollista kuten Pistolet-aseella.
Tätä varten on olemassa vakiotoiminto getCellsToUseWeapon, joka palauttaa kaikki mahdolliset solut aseen käyttämiseen kohteeseen. Meidän on siis valittava yksi: lähin!
Aiomme siis luoda toiminnon getClosestCellToUseWeapon ja käyttää for in-silmukkaa laskeaksemme solun, jonka etäisyys meihin on lyhin:
Käytämme sitä korvaamaan liikkeen moveToward:
Jos tunnet olosi mukavaksi, voit koodata toimintoja:
estimateDamage(weapon, enemy): laskee vahingon, jonka ase weapon aiheuttaa kohteelle enemy.getBestWeapon(enemy): etsii aseidesi joukosta sen, joka tekee eniten vahinkoa kohteelle enemy.Voit myös:
Nähdäksesi maaston ja solut paremmin, älä epäröi käyttää taktista tilaa painamalla T taistelun aikana.
Seuraavissa luvuissa käsittelemme vaikeampia näkökohtia, joten ota aikaa leikkiä toimintojesi ja aiemmin näkemiemme käsitteiden kanssa, jotka ovat jo riittäviä nousemaan sijoituksissa!
Mikä toiminto, joka palauttaa luvun neliön, on oikein?
function nelio(x) { return x * x } function nelio(x) { x * x } function nelio() { return x * x } fonction nelio(x) { return x * x }
Mikä toiminto laskee listan maksimin?
function maksimi(lista) { var max = -99999 for (var e in lista) { if (e > max) { max = e } } return max } function maksimi(lista) { var max = 99999 for (var e in lista) { if (e < max) { max = e } } return max } function maksimi(lista) { var max = 99999 for (var e in lista) { if (e > max) { max = e } } return max } function maksimi(lista) { var max = -99999 for (var e in lista) { if (e < max) { max = e } } return max }
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.