OO2/Lab 3 2021

Izvor: SI Wiki
< ОО2
Datum izmene: 4. jun 2021. u 20:04; autor: KockaAdmiralac (razgovor | doprinosi) (KockaAdmiralac преместио је страницу „SI Wiki/ОО2/Лаб 3 2021” на „ОО2/Лаб 3 2021” без остављања преусмерења: Popravka naslova)
Pređi na navigaciju Pređi na pretragu

V1

V2

Generator slučajnih celih brojeva generiše slučajne cele brojeve na zahtev. Moguće je zahtevati jedan slučajan ceo broj ili niz od n elemenata u zadatom opsegu donje i gornje granice. Zadate granice su inkluzivne.

Generator jedinstvenih celih brojeva je generator koji generiše niz sa jedinstvenim brojevima pomoću heš seta(HashSet).

Polje je platno (Canvas) koje se stvara sa zadatom dvodimenzionom mrežom (videti niže) kojoj pripada i zadatom celobrojnom vrednošću (broj) koja predstavlja natpis (labelu) na polju i koja može da se dohvati. Polje može imati jedan od sledećih statusa:PROMAŠENO, POGOĐENO, (I JOŠ JEDAN ČIJE IME SE NE SEĆAM, NEK BUDE SELEKTOVANO), SLOBODNO, IZABRANO, koji se može postaviti i dohvatiti. Podrazumevano, polje ima status SLOBODNO, a širina i visina su mu 75 piksela, boja pozadine mu je narandžasta, a broj je ispisan crnom bojom na sredini polja i zauzima jednu trećinu manje dimenzije polja (potrebno je obezbediti promenu veličine sadržaja polja pri promeni veličine prozora). Polje statusa IZABRANO unutar celog polja iscrtava elipsu popunjenu plavom bojom, a broj je ispisan belom bojom. Polje statusa POGOĐENO unutar celog polja iscrtava elipsu popunjenu zelenom bojom, a broj je ispisan crnom bojom. Polje statusa PROMAŠEN unutar celog polja iscrtava elipsu popunjenu crvenom bojom, a broj je ispisan crnom bojom. Polje statusa SELEKTOVAN unutar celog polja iscrtava elipsu popunjenu belom bojom, a broj je ispisan crnom bojom. Klikom levog tastera miša na polje menja se njegov status (ukoliko je status polja SLOBODNO ono postaje IZABRANO i obrnuto) i polje prosleđuje mreži informaciju da se njegov status promenio.

Mreža je panel koji sadrži pravougaonu matricu polja i listu (ArrayList) polja koja imaju status IZABRANO i koja može da se dohvati. Stvara se sa zadatim celobrojnim dimenzijama (podrazumevano 4 h 5) i igrom (videti niže) kojoj pripada. Prilikom stvaranja mreže, polja se dodaju u mrežu redom po vrstama, pri čemu se poljima zadaju sukcesivne celobrojne vrednosti, a numeracija kreće od vrednosti 0. Polja su razmaknuta jedna od drugih za 3 piksela, a boja pozadine mreže je crna, tako da se postigne efekat polja raspoređenih u mreži. Moguće je dohvatiti skup (HashSet) koji čine svi celi brojevi polja mreže sa statusom IZABRANO. Promenom statusa nekog njenog polja, mreža ažurira listu polja sa statusom IZABRANO i prosleđuje igri informaciju da je polje promenilo status.

Rulet je klasa koja animira izbor brojeva. Stvara se sa zadatom mrežom. Sadrži niz veličine između 30% i 70% veličine mreže. Trenutni broj se može dohvatiti(on uvek predstavlja poslednji broj). Treba omogućiti da se poslednji broj ne može dohvatiti dok se ne završi animacija. Animacija treba biti sledeća: Počinje se tako što se selektuje polje sa vrednosti koju predstavlja prvi član niza, zatim postaviti status tog polja na SELEKTOVAN, sačekati 200ms i zatim vratiti prethodni status polju. Svaka sledeća iteracija kroz niz treba povećati vreme čekanja za 10% inicijalnog čekanja(200ms). Trenutni broj je poslednji broj u iteraciji.

Klasa koja treba da bira...??? je klasa koja...

Istorija je panel koji sadrži listu stavki(videti sliku). Stvara se sa maksimalnim kapacitetom .Stavke trebaju biti klasa TextArea, ne treba imati ni vertikalni i horizontalni skrol bar. Moguće je dodati stavku. U slučaju da se dodaje stavka koja bi prešla maksimalni kapacitet, potrebno je tu stavku ubaciti umesto najranije stavke. Stavka treba sadržati broj runde, izvučen broj, ulog i dobitak.

Igra je glavni prozor aplikacije (sa slike) koji sadrži jednu mrežu podrazumevane veličine, koja može da se dohvati, jedan panel za stavke (sa leve strane), jedan panel za upravljanje (sa desne strane) i statusnu traku (na dnu). Igru je moguće započeti samo ukoliko se izabere barem jedno polje. Ulog ima podrazumevanu vrednost 100. Broj uloga ima podrazumevanu vrednost 100 .Izborom polja (promenom njegovog statusa) ili izmenom vrednosti uloga vrši se ažuriranje vrednosti kvote i dobitka koji se prikazuju u prozoru aplikacije. Vrednost kvote se računa kao količnik ukupnog broja polja i broja polja sa statusom IZABRANO. Vrednost dobitka se računa kao proizvod kvote i uloga. Igra se započinje klikom na dugme Igraj nakon čega se vrši generisanje slučajnog celog broja u opsegu brojeva na poljima mreže. Generisani broj ispisuje se u statusnoj traci na dnu prozora, koja se boji zelenom bojom ukoliko je generisani broj jedan od brojeva na izabranim poljima mreže (broj je pogođen), odnosno crvenom bojom u suprotnom (broj je promašen). Ukoliko je generisani broj pogođen, vrši se dodavanje vrednosti dobitka na vrednost balansa, dok se, ukoliko je broj promašen, vrši oduzimanje vrednosti uloga od vrednosti balansa. Inicijalna vrednost balansa je 0. Inicijalno, boja statusne trake je tamno-siva.

V3