Listene

Listene

> Opplæring

En liste brukes til å lagre flere verdier i en bestemt rekkefølge.

Opprette og bruke en liste

Du kan lage en liste med følgende syntaks:

Den første posisjonen i en liste er posisjon 0. Du får tilgang til et spesifikt element i listen med:

Mange funksjoner er tilgjengelige for håndtering av lister, i "Lister"-delen av dokumentasjonen. De mest bemerkelsesverdige er:

Iterering over en liste med 'for in'-løkken

Du kan iterere over hver av verdiene i en liste ved å bruke en enkel 'for'-løkke, slik:

Men det er en variant av 'for'-løkken som gjør det mulig å iterere over hver av verdiene til en liste enklere, 'for i'-løkken. Følgende kode tilsvarer den forrige, men er mer kortfattet:

Våpenskadevurdering og etterbehandlertilstand

Vår nåværende AI har et problem som du kanskje har lagt merke til: når fienden nesten er død, vil purren vår bruke sine forsterkninger, helbreder, skjold før den bruker våpenet, mens den kan fullføre fienden!

For å forbedre denne situasjonen på slutten av kampen, vil vi anslå skaden vi kan påføre fienden for å vite om vi kan fullføre den.

Vi starter med å bruke funksjonen getWeaponEffects som viser effekten av et våpen:

En effekt er i seg selv en liste som inneholder følgende 6 elementer: [type, min, maks, svinger, mål, modifikatorer]. Den endelige skaden for denne effekten beregnes:

Legg til skaden til totalen:

Vi avslutter med en betingelse: hvis den totale skaden er større enn fiendens liv, vil vi drepe ham: vi angriper! Ellers venter vi med kulepunkter:

> Tips: du kan få tilgang til et utvalg av en liste ved å bruke syntaksen list[2:8].

> Tips: du kan neste lister: liste i en liste [ [1, 2, 3] ] og tilgang til en liste i en liste: liste[0][0]

❓ Quiz

Hva er en liste for?

Lagre flere verdier Sorter verdier Utfør instruksjoner parallelt Utfør flere beregninger

Hvilke koder er gyldige?

var a = [1, 2, 3] a[0] + a[2] var [a] = [1, 2] var[1, 2, 3] antall([1, 2, 3]) [ [1, 2], [3, 4], [5, 6] ] liste[5][10]

Full AI

``` purreskrift // Vi tar pistolen hvis den ikke er utstyrt if (getWeapon() == null) { setWeapon(WEAPON_PISTOL) }

// Vi får den nærmeste fienden var enemy = getNearestEnemy()

// Vi hilser motstanderen vår if (getTurn() == 1) { si ("Hei " + getName(fiende) + "!") }

// Vi rykker mot fienden moveMoward (fiende)

var effects = getWeaponEffects() // liste over effekter var total = 0 // Vi teller all skade for (var effekt i effekter) {// iterer over alle effektene if (effekt[0] == EFFECT_DAMAGE) { // hvis effekten er skade var minDamage = effekt[1] // minimum våpenskade var BoostedDamage = minDamage * (1 + getStrength() / 100) // økt med styrke var Finaldamage = Boosteddamage * (1 - getRelativeShield(fiende) / 100) - getAbsoluteShield(fiende) // redusert med skjold