Projektni zadatak - Toplo - Hladno

Isto kao i ti, i programi u MakeCode-u mogu da donose odluke. Do sada, sve programe koje smo pisali, bili su linijski programi, tačnije programi koji se izvršavaju redom naredbu po naredbu do kraja programa. Za razliku od ovakvih programa, gde se svaki korak, odnosno svaka naredba, izvršava samo jedanput, u algoritmima odlučivanja, tačnije razgranatim (uslovnim) algoritmima neke naredbe će se izvršiti, a neke ne, u zavisnosti od ispunjenosti uslova.

Demonstiraćemo ovaj koncept programiranja kroz igru Toplo - Hladno. Na osnovu pozicije lika prikazuje se poruka koliko je on udaljen od objekta postavljenog u svetu. Ako je blizu, izgovoriće se reč Toplo, ako je daleko od predmeta biće izgovoreno Hladno. Ako je lik (igrač) jako blizu objektu, biće izogoveno Vrelo, a ako je jako daleko Ledeno.

Faza 1.

Razmišljanje o problemu: Za određivanje udaljednosti objekta od lika (igrača) potrebno je da izračunamo rastojanje između njih, i da na osnovu tih vrednosti dobijemo željenu poruku.

Faza 2

Pokreni Code Builder (klikom na taster C) i otvoriće se editor prozor u kome je moguće ređati blokove.

Na početku u bloku on start potrebno je definisati i postaviti objekat u svet. Postavićemo ga tako da vrednost koordinate X ima nasumičnu vrednost iz intervala 0 do 600, a ostale dve koordinate imaju vrednost Y i Z koordinata igrača.

Da bismo to uradili potrebno je da kreiramo promenljive X, Y, Z (čuvaju koordinate položaja objakta) i Blok (čuva objekat). Kreiranim promenljivima dodeljijemo početne vrednosti.

U bloku start definišemo položaj i vrstu objakta prevlačenjem blokova na sledeći način:

Izgled koda nakon definisanja promenljivih:

_images/801.png

Kada su definisane koordinate i objekat koji će biti postavljen potrebno je prevući blok kojim će taj objekat biti fizički postavljen u svet. Za to korisitmo blok place iz kategorije Blocks. Ovaj blok ima dva argumenta, od kojih u prvi argument postvaljamo promenljivu b1, a u drugi postavljamo koordinate X, Y i Z za definisanje položaja objekta korišćenjem bloka b2 iz kategorije Positions.

Izmenjeni kod ima sledeći izgled:

_images/812.png

Na ovaj način smo pozicionirali objekat u Minecraft svet. Ako želimo da vidimo koje su njegove koordinate možemo iskoristiti blok say. Za prikazivanje možemo koristiti blok join iz podkategorije Text kategorije Advanced.

Dodavanjem ovog bloka program ima sledeći izgled:

_images/83.png

Sledeći korak je da u bloku chat prevućemo blokove pomoću kojih ćemo odrediti rastojanje između postavljenog objekta u svetu i lika (igrača). To postižemo definisanjem promenljivih koje će čuvati poziciju lika (igrača), to jest, one čuvaju x, y i z koordinate lika. Pojedinačne koordinate dobijamo korišćenjem bloka world i bloka getof.

Kreiramo promenljive X1, Y1 i Z1 i dodeljujemo im vrednosti koordinata položaja lika:

_images/84.png

Da bismo izračunali rastojanje između lika i objekta potrebno je da iskoristimo formulu koja se koristi i u matematici za određivanje rastojanja u 3D između dve tačke A (x1, y1, z1) i B(x2, y2, z2):

_images/s291.png

Kreiramo promenljivu rastojanje, i dodeljujemo joj vrednost koja se dobija korišćenjem formule za izračunavanje rastojanja dve tačke.

U MakeCode-u matematičke operacije su predstavljene u kategoriji Math. Jednostvnim ređanjem odgovarajućih blokova (+, -, i kvadrat **, kao i kvadratni koren) formiramo gornju formula:

_images/851.png

Dopunjeni kod izgleda ovako:

_images/861.png

Sada kada imamo vrednost promenljive rastojanje, možemo da završimo našu igru Toplo-Hladno.

Na osnovu rastojanja lika (igrača) od objekta Minecraft obaveštava lik (igrača) gde je objekat kratkim porukama kao što su Toplo, ako je objekat blizu, Hladno, ako je predmeta daleko. Ako je lik (igrač) jako blizu objektu, biće izogoveno Vrelo, a ako je jako daleko Ledeno.

Na osnovu postavke zadatka imamo da:

Za ovo ćemo koristi blok ifthen i operatore poređenja (> i =) iz kategorije Logic. Grane dodajemo klikom na +. Prevlačenjem ovih blokova dobijamo sledeći izgled koda:

_images/881.png

Konačan izgled programa za igricu Toplo - Hladno:

_images/89.png

Faza 3

Testiranje programa. Klikom na dugme Play .

Pokrećemo čet klikom na taster T na tastaturi, u unosimo reč gde, koja predstavlja „okidač“ za startovanje igrice.

_images/90.png _images/91.png