Listorna

Listorna

> Handledning

En lista används för att lagra flera värden i en specifik ordning.

Skapa och använda en lista

Du kan skapa en lista med följande syntax:

Den första positionen i en lista är position 0. Du kommer åt ett specifikt element i listan med:

Många funktioner finns tillgängliga för att hantera listor, i "Listor"-delen av dokumentationen. De mest anmärkningsvärda är:

Itererar över en lista med 'för i'-loopen

Du kan iterera över vart och ett av värdena i en lista med en enkel "för"-loop, så här:

Men det finns en variant av 'för'-loopen som gör det möjligt att iterera över vart och ett av värdena i en lista enklare, 'för i'-loopen. Följande kod motsvarar den föregående men är mer kortfattad:

Skador på vapen och efterbehandlarens skick

Vår nuvarande AI har ett problem som du kanske har märkt: när fienden nästan är död kommer vår purjolök att använda sina förstärkningar, läker, sköldar innan de använder sitt vapen, medan den kan göra slut på fienden!

För att förbättra den här situationen i slutet av kampen kommer vi att uppskatta skadan som vi kan tillfoga fienden för att veta om vi kan avsluta den.

Vi börjar med att använda getWeaponEffects-funktionen som listar effekterna av ett vapen:

En effekt är i sig en lista som innehåller följande 6 element: [typ, min, max, svängar, mål, modifierare]. Den slutliga skadan för denna effekt beräknas:

Lägg till skadan till summan:

Vi avslutar med ett villkor: om den totala skadan är större än fiendens liv kommer vi att döda honom: vi attackerar! Annars väntar vi med punktpunkter:

> Tips: du kan komma åt ett intervall av en lista med syntaxen lista[2:8].

> Tips: du kan kapsla listor: lista i en lista [ [1, 2, 3] ] och tillgång till en lista i en lista: lista[0][0]

❓ Frågesport

Vad är en lista till för?

Lagra flera värden Sortera värden Utför instruktioner parallellt Utför flera beräkningar

Vilka koder är giltiga?

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

Full AI

``` purjolök // Vi tar pistolen om den inte är utrustad if (getWeapon() == null) { setWeapon(WEAPON_PISTOL) }

// Vi får den närmaste fienden var enemy = getNearestEnemy()

// Vi hälsar vår motståndare if (getTurn() == 1) { say("Hej " + getName(fiende) + "!") }

// Vi avancerar mot fienden flytta Mot (fiende)

var effects = getWeaponEffects() // lista över effekter var total = 0 // Vi räknar alla skador for (var effekt i effekter) {// iterera över alla effekter if (effekt[0] == EFFECT_DAMAGE) { // om effekten är skada var minDamage = effekt[1] // minsta vapenskada var BoostedDamage = minDamage * (1 + getStrength() / 100) // ökat med styrka var Finaldamage = Boosteddamage * (1 - getRelativeShield(fiende) / 100) - getAbsoluteShield(fiende) // reducerat med sköldar