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)

Greenfoot

Pregled stavki - šta radimo na časovima vežbi:

  • Kreiranje objekta klase Crab i postavljanje u igru.

  • Uloga metode act().

  • Kretanje pomoću move() i okretanje pomoću turn().

  • Provera pritiska tastera pomoću Greenfoot.isKeyDown().

  • Razumevanje da se metoda act() ponavlja tokom izvršavanja igre.

Za prvi deo vežbi inspiracija je na osnovu Tutorijala 2 – Movement and Key Control ( Otvori tutorijal 2). Drugi deo vežbe je takođe inspirisan sa  Tutorijal 3 – Detecting and Removing Actors, and Making Methods ( Otvori tutorijal 3 ) ali ne radimo baš isto.
 
  • Kreiranje klase Worm

  • Kreiranje više objekata klase Worm i 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.

...

Last modified: Tuesday, 20 October 2026, 1:14 PM