20.10. vežbe - krabe
U cilju lakše vizualizacije Objektno Orijentisanog Programiranja (OOP) nastavljamo da koristimo Greenfoot u kojem se radi sa Java jezikom.
- deo: Otvoriti stranicu sa drugim tutorijalom (Help - Greenfoot Tutorial - Movement and Key Control)
- deo: Preuzeti početni projekat sa krabama (link dat na stranici - Download the crab zip file - modern-crab.zip - pa otpakovati)
- deo: pokrenuti projekat (project.greenfoot)
Pregled stavki - šta radimo na časovima vežbi:
-
Kreiranje objekta klase
Crabi postavljanje u igru. -
Uloga metode
act(). -
Kretanje pomoću
move()i okretanje pomoćuturn(). -
Provera pritiska tastera pomoću
Greenfoot.isKeyDown(). -
Razumevanje da se metoda
act()ponavlja tokom izvršavanja igre.
-
Kreiranje klase
Worm -
Kreiranje više objekata klase
Wormi postavljanje u igru -
Uklanjanje pojedenog objekta iz sveta (kada kraba pojede crva)..
Koraci u radu:
10 min
1. Upoznavanje sa scenarijem
Učenici otvaraju početni Crab scenario, postavljaju objekat Crab u svet i pokreću igru. Pregledaju klasu Crab, svet i metodu act().
(Novi objekat klase Crab: desni klik na klasu Crab - new Crab() i postavi taj objekat u igru)
20 min
2. Kretanje i okretanje
Prema tutorijalu 2, učenici dodaju move(4) i isprobavaju turn(3). Zatim menjaju kod tako da se rak okreće pritiskom na strelice levo i desno.
(Ove dve metode pozivamo iz metode act - prvo samo move(4) a zatim i turn(3) )
Provera: učenik ume da objasni razliku između kretanja i okretanja i da promeni brzinu.
10 min
3. Kratki samostalni zadatak
Izmeniti upravljanje tako da se rak okreće tasterima A i D. Učenici zatim ispituju šta se dešava kada se istovremeno drže oba tastera za okretanje.
20 min
4. Dodavanje crva i detekcija kontakta
Prema tutorijalu 3, kreirati klasu Worm, postaviti više crva u svet i dopuniti klasu Crab kodom koji proverava da li kraba dodiruje crva - u tom slučaju treba ukloniti crva.
if ( isTouching(Worm.class) )
{
removeTouching(Worm.class);
}
Učenici treba da razumeju:
-
kako radi i šta vraća
isTouching(Worm.class); -
kako i šta radi
removeTouching(Worm.class);;
20 min
5. Izdvajanje metoda i samostalna izmena
Učenici izdvajaju kretanje u metodu moveAndTurn(), a sakupljanje crva u metodu eat(). Metoda act() zatim poziva te dve metode.
Na kraju samostalno menjaju brzinu kretanja ili dodaju nekoliko novih crva u svet.
10 min
6. Provera rada
Svaki učenik demonstrira kretanje i sakupljanje.
Objašnjenje za učenike:
Kako bi trebalo da na kraju časova izgleda organizacija metode act()
public void act()
{
moveAndTurn();
eat();
}
Ovde je najvažnije da učenici shvate da act() ne mora da sadrži sav kod koji definiše ponašanje objekta. Ona može da poziva druge metode, od kojih svaka obavlja jedan jasno određen posao.
...