Materiaalit on lisensoitu Creative Commons BY-NC-SA-lisenssillä, eli materiaalin levittäminen ja muokkaaminen on sallittu, kunhan tekijöiden nimet säilyvät mukana ja jatkoversiot julkaistaan samalla lisenssillä. Kaupallinen käyttö kielletty.

Alkuperäinen tekijä (2014): Anni Järvenpää


Takaisin: Syksy 2014

Laatikkolabyrintti

Pelin toiminta Pelihahmo pyrkii saamaan pelialueella olevan laatikon työnnettyä maaliin.
Vaikeustaso Pelissä käytetään joitain Scratchin edistyneemmille käyttäjille sopivia ominaisuuksia, esimerkiksi lohkoja ja listoja. Lisäksi hahmon liikkumiseen liittyvät tarkastukset ovat monimutkaisempia kuin aiemmin tällä sivulla esitellyissä peleissä. Sopii edistyneemmillekin scratchaajille.
Oppimistavoitteita
  • Tutustutaan lohkoihin.
  • Tutustutaan listoihin.
  • Käytetään Scratchiin sisäänrakennetusta koordinaatistojärjestelmästä poikkeavaa tapaa käsitellä hahmojen paikkoja.
  • Scratchin leimaa-toiminto.
  • Viestien lähettäminen ja kuunteleminen.
Toimiva versio Sokoban mallina Scratchissa
Variaatioita toteutuksessa Grafiikat voi luonnollisesti suunnitella itse, ainoana rajoituksena on kunkin palikan koko 20px*20px. Täten pelissä voidaan yhtä hyvin työntää jalkapallo maaliin kuin koira eläinlääkärille. Jos aikaa on vähän, voi pelistä toteuttaa myös vain yhden kentän, jolloin kun laatikon saa maaliin, näytetään heti "voitit pelin" -ilmoitus sen sijaan, että siirryttäisiin seuraavaan kenttään.

Kuva mallipelistä:

Screenshot esimerkkipelistä.

Työvaiheet:

Väriselite:

Oppimistavoite
Tarkennus tekotapaan
  1. Taustan piirtäminen
    1. Tausta koostuu vakiokokoisista tiilistä
    2. Kannattaa käyttää valmista Sokoban-pohjaa, jonka kuvien päälle piirtämällä on helppo saada kuvista oikean kokoisia. Tässä vaiheessa piirretään pelialue-hahmon asut "S" ja "K". Näistä S on seinä (tiili jonka päällä ei voi kävellä ja johon ei voi työntää laatikkoa) ja K käveltävä ruutu, johon voi mennä itse tai työntää laatikon. Piirrä ne täsmälleen esimerkkikuvan kokoisiksi siten, että koko neliön alue on väritetty, jotta taustasta tulee yhtenäinen.
  2. Kartan suunnitteleminen
    Tiedon tallentaminen listaan.
    1. Kartta tallennetaan listaan
    2. Lista on tavallaan muuttuja, joka sisältää monta muuttujaa. Tässä tapauksessa listaan tallennetaan yksi tekstijono kutakin kentän riviä kohden. Merkitse seiniä vaikkapa kirjaimella S ja lattiaa kirjaimella K, siis esimerkiksi rivi, jolla on ensin seinä, sitten kaksi palaa lattiaa, seinä, pala lattiaa ja jälleen seinä, merkittäisiin "SKKSKS".
  3. Kartan piirtäminen
    Lohkojen käyttäminen.
    Tiedon hakeminen listasta.
    1. Aseta palikka -lohko
    2. Pelissä joudutaan tulostamaan näytölle hyvin monta tiiltä, joten on järkevää laittaa tähän käytettävä koodi omaan lohkoonsa, jota voidaan kutsua aina tarvittaessa.
      Kartta kannattaa piirtää siirtämällä kartan piirtoon käytettävä hahmo oikeaan kohtaan, vaihtamalla sille oikea asuste ja käyttämällä leimaa-palikkaa.
    3. Karttaruudukon käyminen läpi
    4. Käy läpi kartan sisältämän listan jokaisen rivin jokainen sarake ja kutsu äsken tehtyä aseta palikka -lohkoa alkion koordinaatteja ja arvoa vastaavilla parametreilla.
  4. Pelaajan liikkuminen
    Liikkuminen askeleittain
    1. Toteuta lohko, jossa pelaaja siirretään oikeisiin koordinaatteihin
    2. Toteuta lohko, jossa tarkastetaan, voiko pelaaja liikkua haluttuihin koordinaatteihin, ja jos voi, kutsutaan edellä tehtyä lohkoa
    3. Säntöjenvastaisen liikkumisen estäminen
      Pelaaja ei voi liikkua seinän sisään.
  5. Laatikon lisääminen
    1. Piirrä laatikon grafiikka
    2. Käytä jälleen Sokoban-pohjan laatikko-hahmoa: piirrä vain neliön sisään, jotta laatikon koko sopii kartan ruutuihin.
    3. Toteuta laatikon koordinaattien alustaminen pelin alussa
    4. Tee ikuinen silmukka, jossa laatikko asetetaan sen koordinaatteja vastaavalle paikalle
    5. Lisää laatikon liikuttamiseen tarvittavat käskyt pelaajan liikuttamiseen käytettävään lohkoon
    6. Huomaa, ettei pelaaja voi liikkua siten, että laatikko työntyy seinän sisään.
  6. Maalin lisääminen
    1. Piirrä maaliruudun grafiikka
    2. Käytä jälleen Sokoban-pohjan maali-hahmoa: piirrä vain neliön sisään, jotta laatikon koko sopii kartan ruutuihin.
    3. Aseta maali pelin alussa haluttuun kohtaan
    4. Lisää laatikon ikuisesti-silmukkaan tarkastus siitä, onko laatikko maalissa eli onko taso selvitetty
  7. Tason vaihtaminen
    1. Luo muuttuja, johon tallennetaan, monennessako tasossa ollaan
    2. Kun laatikko on maalissa, lähetä viesti tason läpäisystä muille hahmoille
    3. Kun vastaanotetaan viesti tason vaihtumisesta, täytyy kartta muuttaa vastaamaan seuraavaa tasoa ja pelialue piirtää uudestaan
  8. Pelin voittaminen
    1. Piirrä hahmo tai tausta, johon vaihdetaan, kun peli päättyy. Muista piilottaa hahmo pelin alussa.
    2. Kun viimeinen taso on läpäisty, aseta tämä hahmo näkyviin ja lopeta skriptit.