9. Samla på spår

20

Varje dag patrullerar robotdetektiverna genom Nordopolis, hela vägen från våning 1 till 200. Vad letar de då efter? Olika typer av spår av aktiviteter som inte är välkomna på Nordopolis. Hittar de smulor kan den vara en kaktjuv på spåren. Slime på väggarna kan innebära en alieninvasion. Och krossade minneskort – en robotmisshandel!

Vid varje genomgång av Nordopolis skapar roboten en lista av alla spår som hittats. En lista kan ses som en låda med många fack där du kan lägga information. Du kan säga vilket fack det ska läggas i, men om något läggs till utan att du säger var, läggs det bara på nästa tomma plats.

Idag är det Random som ansvarar för listan. Listan är tom när patrulleringen börjar. När ett spår hittas läggs det till i listan, tillsammans med en variabel för vilken våning det hittades på.

När Random patrullerar från våning 1 till 200 körs följande kod:

Repetera (för alltid)
     Om (smulor)
          Lägg till i lista (våning + “ Smulor”)
     Om (slime)
          Lägg till i lista (våning + “ Slime”)
     Om (krossade minneskort)
          Lägg till i lista (våning + “ Krossade minneskort”)

Eftersom det här är en lista med text (som också kan kallas strängar) så betyder plustecken (+) inte att det ska ske en uträkning, utan strängarna slås samman till en längre sträng. Ett exempel kan vara ”20 Smulor”.

Just denna dagen hittar Random fyra spår: Smulor på våning 20 och 55, slime på våning 71 och krossade minneskort på våning 18. För varje spår fylls Randoms lista med strängar!

Frågor

  1. Vilket spår kommer att ligga först i Ramdoms lista?

  2. Vilket spår kommer att ligga sist i Randoms lista?

  3. Kan du hitta på ett nytt spår att lägga till i listan, genom att lägga till ett villkor i kodsnutten?

Vad har detta med datorer och kod att göra?

En lista är en av de datastrukturer (vi berättade om datastrukturer i Utmaning 2) som används mest vid programmering. De är bra för att hålla reda på flera saker som hänger ihop, till exempel misstänkta för ett specifikt brott, namn på robotdetektiver eller de senaste temperaturmätningarna på olika våningar i Nordopolis.

Som du kanske har sett så finns listor i Scratch, och även i de flesta andra programmeringsspråk. Då kallas det ibland för en array.