Projekt Java — specyfikacja
1. Temat zadania
Implementacja gry animacyjnej w jezyku Java. Gra polega na rozbijaniu kul, a celem gracza jest
zdobycie jak najwiekszej liczby punktów w czasie 60 sekund.
2. Wyglad oblicza
W momencie uruchomienia programu pojawia sie okno o ustalonym rozmiarze (mozna je jedynie
zamknac lub zwinac do paska zadan). Okno zawiera menu Gra, w którym dostepne sa
dwie opcje: Start oraz Koniec. W górnej czesci okna znajduja sie dwa liczniki — po lewej
stronie licznik punktów, po prawej — licznik sekund. W centralnej czesci okna jest pole gry
— prostokat, wewnatrz którego poruszaja sie kule. Ponizej prostokata umieszczone jest działo,
z którego uzytkownik oddaje strzały. W dolnej czesci okna wyswietlana jest pomoc dla uzytkownika.
3. Przebieg gry
Po uruchomieniu programu pojawia sie okno gry, a w jego dolnej czesci napis Z menu Gra
wybierz Start, aby rozpoczac gre. Licznik punktów wyswietla 0, natomiast licznik sekund 60.
Gdy uzytkownik wybierze Start z menu Gra, zachodza nastepujace zdarzenia:
• licznik sekund zaczyna zliczac sekundy w dół do 0 (59, 58, 57 itd.),
• w polu gry, w losowo wybranym miejscu, pojawia sie duza niebieska kula poruszajaca sie
w losowo wybranym kierunku i odbijajaca sie od jego brzegów,
• w dolnej czesci okna pojawia sie napis Nacisnij spacje, aby oddac strzał.
W chwili nacisniecia spacji, działo oddaje strzał, a napis Nacisnij spacje, aby oddac strzał znika.
Pocisk (niewielka kula czerwonego koloru) porusza sie po linii prostej z nico wieksza predkoscia,
niz kula niebieska, az do trafienia, badz znikniecia po drugiej stronie pola gry. Uzytkownik
moze oddac kolejny strzał tylko wtedy, gdy pocisk zniknie z pola gry. W momencie trafienia,
duza kula znika, a w jej miejsce pojawiaja sie dwie mniejsze o promieniach równych połowie
jej promienia. Mniejsze kule poruszaja sie w sposób analogiczny jak duza kula. Przy kolejnym
trafieniu, sekwencja zdarzen wyglada identycznie — mała kula rozpada sie na dwie mniejsze
itd. Przy 6. trafieniu, kule nie rozpadaja sie na dwie mniejsze, tylko znikaja. Za kazde trafienie
uzytkownik otrzymuje r0/rn punktów, gdzie r0 to promien pierwszej kuli, a rn — promien
kuli nowopowstałej. Sume punktów wyswietla licznik punktów. Gdy czas gry dobiegnie konca,
zachodza nastepujace zdarzenia:
• wszystkie obiekty znikaja z pola gry,
• działo ulega zablokowaniu (uzytkownik nie moze strzelac),
• licznik punktów wyswietla sume uzyskanych punktów, natomiast licznik sekund 0,
• w dolnej czesci okna pojawia sie napis Z menu Gra wybierz Start, aby rozpoczac gre.
Uzytkownik moze powtórzyc gre wybierajac Start z menu Gra. Moze ja równiez zakonczyc,
wybierajac Koniec lub zamykajac okno.
4. Implementacja
• jezyk implementacji: Java,
• forma programu: aplikacja,
• srodowisko implementacji: dowolne,
• projekt oblicza moze zostac wykonany z wykorzystaniem dowolnych bibliotek graficznych
(AWT, Swing, JFC),
• kazda kula (w tym takze pocisk) obsługiwana jest przez odrebny watek, tzn. pojawienie
sie kuli na ekranie wiaze sie z utworzeniem watku ja obsługujacego, znikniecie — z jego
usunieciem.
2
5. Kryteria oceny
Waga poszczególnych elementów w ocenie koncowej: program z kodem zródłowym — 70%,
dokumentacja programu — 30%. Przy ocenie brane jest pod uwage:
• zgodnosc ze specyfikacja,
• poprawnosci implementacji — np. zwiniecie okna do paska zadan i rozwiniecie nie powinno
powodowac znikniecia zadnego z elementów wyswietlanych w oknie; nie powinno dochodzic
do zakłócen w pracy programu (synchronizacja watków); aplikacja konczy wykonanie bez
zadnych błedów itd.,
• jakosc kodu zródłowego, tj. sposób implementacji, czytelnosc (komentarze, nazewnictwo
zmiennych, funkcji), modularyzacja itp.,
• jakosc dokumentacji. Dokumentacja powinna ułatwiac zrozumienie programu i zawierac:
– struktury danych,
– opis sekwencji sterowania (wywołania metod) i operacji wykonywanych na strukturach
danych w wyniku obsługi róznych zdarzen, np. wyboru Start z menu Gra,
nacisniecia spacji, zderzenia kul itp.
Muszę mieć grę z dokumentacją za max 10dni czekam na informacje.