Coding for KidsCoding for Kids
Luovat TasotHaasteetOpettajan Opas
Äänestä ominaisuuksia
Edistynyt Python-kehityskurssi
Luku
>
Taso

Edistyneet listat
Matriisin muokkaaminen

Tavoite

Kerää ja tallenna viinipullot viinihyllyyn muokkaamalla matriisia.

Viinihyllyyn on tallennettava useita viinipulloja. Kuitenkin hyllyyn on jo varastoitu useita pulloja, ja tavarat on sijoitettava tiettyihin paikkoihin, jotta ne voidaan lajitella.

Hyllyssä olevat pullot on tallennettu matriisiin, joka on eräänlainen sisäkkäinen lista. Matriisit ovat sisäkkäisiä listoista, joissa jokainen alkio on lista, jonka pituus on täsmälleen sama; näin muodostuu eräänlainen ruudukko, jossa alkiot jakautuvat riveihin ja sarakkeisiin. Esimerkiksi:

matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], [0, 0, 0] ]

Yllä olevassa koodissa on matriisi, jossa on kolme (3) saraketta ja neljä (4) riviä. Pääset käsiksi matriisin alkioon kertomalla rivin ja sarakkeen, jossa alkio sijaitsee – aivan kuten tavallisella listalla, mutta käyttäen kahta indeksiä. Esimerkiksi yllä olevan koodin perusteella: matrix[0][0] = 1, matrix[0][1] = 2, matrix[1][0] = 4 jne.

Kellarissa on neljä (4) erilaista viinipulloa, nimittäin: "purple bottle", "green bottle", "blue bottle", "yellow bottle". Kerää kaikki kentällä olevat pullot, jotta ne voidaan tallentaa hyllyyn.

Pullot on myös varastoitu laatikoihin, joten kävele valkoista X-merkkiä kohti ja käytä collect()-funktiota, kun olet laatikoiden edessä, saadaksesi pullot talteen. On olemassa kaksi vakiota, jotka sisältävät laatikoiden sisällön: lower_crate ja upper_crate. Niiden nimet vastaavat niiden sijaintia kartalla ja niitä käytetään seuraavasti: player.collect(lower_crate).

Kun kaikki pullot on kerätty, sijoita kunkin pullo-tyypin kerättyjen pullojen lukumäärät muuttujille, nimittäin: purple_bottle, green_bottle, blue_bottle, yellow_bottle. Tämän jälkeen kävele kultaisen X-merkin luo ja käänny viinihyllyä kohti.

Koodieditorissa näytetään matriisi nimeltä wine_rack. Etsi tästä matriisista ne alkiot, joiden arvona on 0, ja lisää keräämäsi pullot näihin arvoihin. Matriisissa kussakin rivissä on merkitty se pullon väri, joka tulee lisätä. Uuden alkion lisäämiseksi matriisiin, kirjoita se rivi- ja sarakeindeksien avulla siihen kohtaan, mihin haluat arvon sijoittaa, esimerkiksi: wine_rack[0][1] = purple_bottle.

Muista, että kaikkien listojen indeksit alkavat numerosta 0. Kun kaikki alkiot on lisätty matriisiin ja se on valmis, käytä place()-funktiota ja sen jälkeen speak()-funktiota kultaisen X-merkin kohdalla matriisin nimen kanssa varmistaaksesi sen arvon ja suorittaaksesi tason loppuun, esimerkiksi: player.place(wine_rack), player.speak(wine_rack).

Koodikirja