Ohjelmointi

Pujottelupelin ohjelmointi

Sivun lopusta löytyy video-ohje pujottelupelin ohjelmoinnista.

Aloitus


1. Siirry linkistä Micro:bitin ohjelmointiympäristöön makecode.microbit.org


2. Tee uusi projekti ja anna sille nimeksi "
Pujottelupeli".


3. Lohkoja KÄYNNISTETTÄESSÄ ja IKUISESTI emme tarvitse ohjelmassa ollenkaan, joten poistetaan ne.
Ota lohkosta kiinni hiiren vasemmalla painikkeella ja raahaa lohko vasemmalla olevien osioiden päälle.

Kun näyttöön tulee roskakorin kuvake, niin vapauta hiiren vasen painike, jolloin lohko poistuu ohjelmasta.




4. Tarvitsemme ohjelmassa kahta muuttujaa. Ensimmäinen kertoo milloin peli on päättynyt ja
toiseen tallennetaan havaittujen kosketusten lukumäärä.

Siirry osioon Muuttujat ja klikkaa painiketta "Tee muuttuja".




Kirjoita muuttujalle nimeksi peli ja klikkaa painiketta OK.


Tee samalla tavalla vielä toinen muuttuja ja kirjoita sen nimeksi kosketuksia.


5. Raahaa Muuttujat-osiosta kahteen kertaan komento ASETA <KOSKETUKSIA> ARVOON <0> koodialueelle.




6. Ohjelmoidaan peli käynnistymään painikkeesta A.
Siirry osioon Syöte ja raahaa sieltä koodialueelle tapahtuma KUN PAINIKETTA <A> PAINETAAN.
Tämä tapahtuma aktivoituu, kun mikro-ohjaimen painiketta A painetaan ja silloin suoritetaan tapahtumaan ohjelmoitu koodi.




7. Sijoita kaksi irrallaan olevaa ASETA... -komentoa tähän tapahtumaan.



8. Muuta ensimmäisen komennon parametrit näin:
ASETA <PELI> ARVOON <1>
Toisen komennon parametrit ovatkin oikein.


Ensimmäisellä komennolla annetaan muuttujalle peli arvoksi luku 1.
Toisella komennolla puolestaan annetaan muuttujalle kosketuksia arvoksi luku 0.
Nämä ovat uuden pelin alkuasetuksia.

Ohjelmoimme pelin niin, että kun muuttujassa peli on luku 1, niin se tarkoittaa pelin olevan käynnissä.
Kun siihen on tallennettu luku 0, niin peli on päättynyt.

Muuttujaan kosketuksia puolestaan tallennetaan silmukan ja mutkaisen rautalangan kosketusten lukumäärä.
Se kasvaa jokaisen havaitun kosketuksen myötä yhdellä.


9. Näytetään laitteen näytöllä oikein-merkki pelin käynnistymisen ilmaisemiseksi pelaajalle.
Raahaa osiosta Yleiset komento NÄYTÄ KUVAKE ja sijoita se edellisten komentojen alapuolelle.




10. Näytettävä kuvake on komennon parametri, oletuksena näytetään sydämen kuvake.
Klikkaa parametria (sydäntä) ja valitse taulukosta näytettäväksi kuvakkeeksi oikein-merkki.


Tämä tapahtuma on nyt valmis.



Kosketuksen havaitseminen ja käsittely


Pitkä mutkainen rautalanka, jonka läpi silmukka tulee pujottaa, on kytketty mikro-ohjaimen pinniin P0.
Silmukka-rautalanka puolestaan on kytketty pinniin GND (MAA). Kun silmukka koskettaa mutkaista
rautalankaa, tulee pinnien P0 ja GND välille johtava kontakti. Tämä kosketus voidaan havaita ohjelman koodissa.
Kontaktin tapahtuessa aktivoituu tapahtuma KUN PINNIÄ <P0> PAINETAAN ja silloin suoritetaan tapahtumaan ohjelmoitu koodi.


11. Lisää ohjelmaan osiosta Syöte löytyvä tapahtuma KUN PINNIÄ <P0> PAINETAAN.




12. Tämä tapahtuma aktivoituu siis silloin, kun silmukka koskettaa mutkaista rautalankaa.
Pelissä se tarkoittaa virhettä, joka tulee käsitellä. Tutkitaan aluksi, että onko peli käynnissä.
Jos muuttujan peli arvo on 1, niin peli on käynnissä ja silloin käsittelemme kosketuksen.
Muuttujan arvon tutkiminen tehdään ehtorakenteella.

Lisää tapahtumaan osiosta Logiikka ehtorakenne JOS <TOSI> SITTEN.




13. Lisää ehtorakenteen ehtoon Logiikka-osiosta vertailuoperaattori "yhtä suuri kuin". (upota se tosi-sanan tilalle).




14. Raahaa Muuttujat-osiosta muuttujapalikka peli ja upota se vertailuoperaattoriin ensimmäisen nollan tilalle.



14. Kirjoita toisen nollan tilalle luku 1.
Nyt tässä ehdossa luetaan muuttujapalikasta muuttujan peli arvo ja tutkitaan, onko se yhtä suuri kuin 1.
Jos ehto on totta (peli=1), eli peli on käynnissä, niin silloin suoritetaan ehtorakenteen sisälle upotetut komennot.




15. Kosketuksen (virheen) merkiksi näytetään laitteen näytöllä X-merkki.
Lisää ehtorakenteen sisälle osiosta Yleiset löytyvä komento NÄYTÄ KUVAKE ja valitse näytettäväksi merkiksi X.




16. Lisää tämän perään vielä toinen NÄYTÄ KUVAKE -komento ja valitse näytettäväksi kuvakkeeksi oikein-merkki.
X-merkki vilahtaa nopeasti näytössä aina kosketuksen tapahtuessa.



17. Sitten meidän tulee vielä kasvattaa muuttujan kosketuksia arvoa yhdellä.
Tässä muuttujassahan meillä on talletettuna havaittujen kosketuksien yhteismäärä pelin aikana.

Lisää edellisen komennon alapuolelle Muuttujat-osiosta komento MUUTA MUUTTUJAN <KOSKETUKSIA> ARVOA <1>.




Nyt kosketuksen havaitseva ja käsittelevä tapahtuma on valmis.
Lopuksi ohjelmoidaan vielä pelin päättyminen.



Pelin pättymisen havaitseminen ja käsittely


Peli päättyy, kun silmukka-lanka koskettaa M-kirjaimen muotoista lankaa. Myös tämä tapahtuma voidaan havaita ohjelman koodissa.
M-kirjaimen rautalanka on yhdistetty mikro-ohjaimen pinniin P1 ja silmukka-lanka pinniin GND, joten niiden koskettaessa toisiaan
aktivoituu tapahtuma KUN PINNIÄ <P1> PAINETAAN.

18. Lisää ohjelmaan Syöte-osiosta aluksi tapahtuma KUN PINNIÄ <P0> PAINETAAN.




19. Vaihda tapahtuman aktivoivaksi pinniksi P1.




20. Kerrotaan ohjelmalle, että peli on päättynyt. Se tehdään asettamalla muuttujan peli arvoksi luku 0.
Raahaa tapahtumaan Muuttujat-osiosta komento ASETA <KOSKETUKSIA> ARVOON <0>.




21. Vaihda muuttujaksi peli (klikkaa tekstiä kosketuksia ja valitse valikosta peli).




22. Pelin päättyessä näytetään laitteen näytöllä havaittujen kosketusten yhteismäärä.
Kosketusten määrän voimme lukea muuttujasta kosketuksia.

Lisää osiosta Yleiset komento NÄYTÄ NUMERO <0>.




23. Ja näytettävä numero on siis muuttujan kosketuksia arvo.
Raahaa komentoon nollan tilalle Muuttujat-osiosta löytyvä muuttujapalikka kosketuksia.




Pujottelupelin ohjelma on nyt valmis.
Lataa ohjelma ensin omalle tietokoneellesi ja lähetä se sen jälkeen mikro-ohjaimeen.

Seuraava vaihe: Testaus


Kuvassa on esitetty vielä valmiin ohjelman koodi.