2016 / Robotika / malo drukčiji programi

Program 1 - panda priča sa voćem

Program možete preuzeti ovdje.

  • Kratak opis

    Ovaj program radi sa tri lika: pandom, jabukom i bananama. Likovi međusobno komuniciraju i glume jedan mali igrokaz koji će pokazati što to znači komuniciranje porukama i rad sa više likova (objekata). 

  • Priča o programu

    Kada se otvori program, u okviru sa likovima mogu se očiti tri lika: pandu, jabuku i banane.  likovi

    Lijevim klikom miša na nekog od likova taj se lik odabire. Na liku se pojavljuje malo "i" a sa desne strane se pojavljuje program (programi) vezan za tog lika. Probajte odabirati likove i gledajte koji se sve programi nalaze na kojem liku. Malo "i" vam omogućuje da preimenujete lika, da ga prikažete ili sakrijete na papiru i da mu postavite još neke osobine.

    Do sada smo radili programe koji su se pokretali na klik miša međutim to je samo jedan od "događaja" koji mogu pokrenuti program. U odjeljku "događaji" možemo vidjeti: dogadjaji

    Svaki od ponuđenih modula predstavljaju način kako se može pokrenuti program. Iza svakog od tih modula se može nalaziti neovisan program koji je zadužen samo za taj događaj - tako možemo imati puno različitih programa za jednog lika: jedan program koji će reagirati ako se pritisne razmaknica, drugi koji će se pokrenuti ako se na njega klikne mišem, treći ako je dobio poruku itd.

    Cilj ovog našeg programa jest da likovi reagiraju na poruke.

    Što su to poruke?

    Poruke su način kako likovi međusobno "pričaju". Svaki lik može poslati neku poruku ili primiti neku poruku i pritom se sa porukama ponašaju kao i u stvarnosti kada netko u javnosti vikne nešto - svi likovi čuju poruke. Upravo zato se programi rade tako da reagiraju samo na željenu poruku.

    U programu sam stvorio nekoliko poruka: postoji poruka od pande prema jabuci, poruka koju jabuka vikne a na koju reagiraju banane, poruka koju banane šalju a na koju će panda reagirati i na kraju poruka koju šanda šalje a na koju će reagirati i jabuke i banane.

    I sada ne preostaje ništa drugo nego da se pokrene glavni program na pandi i pogleda što nam sve ovi likovi govore.

    Probajte odabirom pojedinog lika pratiti kako poruke idu i pogledajte na koje poruke pojedini likovi reagiraju. 

    Nadam se da vam se primjer sviđa a ukoliko imate kakvo pitanje - slobodno mi pošaljite poruku.

 

Program 2 - loptica odbijačica

Program možete preuzeti ovdje.

  • Kratak opis

    Loptica, kada se na nju klikne mišem, počineskakutati po papiru i odbijati se od rubova ali i od pande. Probajte premještati pandu i pogledajte kako se lopta ponaša (na pandu kliknite i držite lijevu tipku miša, pomaknite pandu na novu poziciju i pustite tipku miša).

  • Priča o programu

    Kada otvorite program, opaziti će te da postoje dva lika: panda i naranča (koju smo nazvali lopta). Ako odaberete pandu tada će te sigurno primijetiti da na tom liku NEMA programa. Panda nam je ovdje koristan samo kao smetalo od kojega će se lopta odbijati.

    Odaberete li pak loptu vidjeti će te da je tu neki program koji se pokreće klikom miša na loptu i još nešto ispod toga nazvano "udari loptu":

    odbijacica potprogram

    Ajmo sada nešto reći o ovome drugom: u mBlock programu ovo se zove blok (u drugim programskim jezicima se ovo naziva i potprogramom). Blok predstavlja niz operacija koje čine cjelinu a koje želimo više puta koristiti. Ako se prisjetite svih dosadašnjih zadaća tada se tamo sigurno može pronaći neki primjer koji možemo napraviti kao blok - recimo crtanje pravokutnika - napravimo blok koji se naziva pravokutnik i u njemu stavimo onu petlju i crtanje stranica i okretanje - sve što je potrebno da bi se nacrtao pravokutnik. U ovom primjeru imamo blok koji se zove "udari_loptu". Nama on služi da se odredi neka brzina i neki smjer kretanja naše lopte.

    Blokove stvaramo u odjeljku "Podatci i blokovi" (narančasta boja). Kada ga stvorimo tada nam se u prostoru za programiranje pojavi samo plavi dio sa slike i na njega onda nalijepimo sve naredbe koje želimo da se izvrše u tom bloku. Kada stvorite blok tada se u narančastom odjeljku "Podatci i blokovi" pored varijabli pojavljuje i operacija nazvana koa i blok a koju možemo umetati u naš program.

    Evo sada i programa:

    odbijacica glavni

    Kao što možete primijetiti, naš blok se poziva dva puta.

    Što radi program? Pretpostavljam da ste već shvatili no evo i mojeg opisa rada: ako je netko kliknuo na lopticu tada se program pokreće. U početku on pozove blok "udari_loptu" gdje se postave tri varijable. Brzina je varijabla koja će nam odrediti po kojoj će se brzini lopta kretati. Što je veći broj to je veća i brzina. PravacH i PravacV su varijable koje se slučajno napune sa brojevima -1, 0 ili 1. Ovisno o tome koji je broj odabran - lopta se kreće u nekom pravcu. Npr. ako je PravacH=0 a PravacV=-1 tada će se lopta kretati samo vertikalno i to prema dolje (jer je Y pozitivan prema gore a negativan prema dolje). Ako je recimo PravacH=-1 a PravacV=1 tada će se lopta kretati horizontalno u lijevo a vertikalno prema gore a to znaći da će ići u koso i to u pravcu gore-lijevo.

    Jednom kada smo odredili brzinu i pravac tada samo trebamo pokrenuti loptu i ispitati da li lopta nešto dira.

    U stvarnosti naše "pokretanje" lopte znači da ju trebamo premjestiti na neku drugu točku. To radimo koristeći naredbu "idi na" kojoj dajemo nove X i Y koordinate.

    Nova X koordinata je stara X koordinata uvećana za (pravacH) * (brzina). Sada vam je jasno zašto se lopta ne kreće po X ako je pravacH=0? Zato što će pravacH*brzina uvijek biti 0 pa se X pozicija nikada neće promijeniti. Ista je priča i sa Y koordinatom.

    Nakon što smo pomaknuli loptu na novu poziciju, ispitamo da li dira rubove. Ako dira gornji ili gornji rub tada pravacV pomnožimo sa -1 i time mijenjamo smjer jer je 1 * -1 = -1 i isto tako -1 * -1 = 1 (to je tako u matematici). Što god da množimo sa 0 je uvijek 0 pa nam tu množenje ništa ne mijenja. Ako dira lijevi ili desni rub ponovo na isti način mijenjamo smjer po horizontali - pravacH.

    Zadnje što provjeravamo je da li smo dotaknuli sa loptom pandu pa ako smo dotaknuli pandu tada ponovo koristimo "udari_loptu" gdje se smjer i brzina nasumice ponovo određuju i gdje lopta odlazi od pande u nekom totalno nepredviđenom smjeru.

    Još kao zanimljivost možete primijetiti da su varijable vidljive samo za loptu jer sam kod stvaranja varijabli rekao da želim da budu vidljive samo za naranču. Da sam rekao da želim da budu vidljive za sve likove tada bi svi likovi vidjeli i mogli mijenjati sadržaj varijabli. 

 

Ova mrežna stranica izrađena je u sklopu projekta "Žene okreću novu stranicu" kojeg provodi udruga Iskra – Centar za edukaciju i savjetovanje. Projekt i izradu stranice sufinancirali su Europska unija iz Europskog socijalnog fonda i Ured za udruge Vlade Republike Hrvatske. Sadržaj ove mrežne stranice isključiva je odgovornost Iskre – Centra za edukaciju i savjetovanje. 

Top
Za što bolje korisničko iskustvo, ova internet stranica pohranjuje vaše kolačiće (cookies). Pritiskom gumba "Prihvaćam kolačiće" slažete se sa korištenjem kolačića. More details…