Witam. Otrzymałem od wykładowcy takie oto zadanie. Problem w tym że nie mam pojęcia od czego zacząć pisanie klasy Gracz. Rozszerzenie klasy abstr. i co trzeba zrobić dalej?
ZADANIE:
Zadanie 03:
Proszę napisać niepubliczną klasę Gracz, która rozszerza abstrakcyjną klasę Gra. Zadanie polega na zatopieniu wskazanej liczby okrętów za pomocą możliwie najmniejszej liczby strzałów. Należy wykorzystać informacje o tym, że statki nie mogą się ze sobą stykać burtami. Dla ułatwienia wszystkie okręty będą tego samego rozmiaru - jednego pola.
Państwa klasa zostanie poddana testom za pomocą mojego oprogramowania. Metoda main() zostanie napisana przeze mnie. Klasa implementująca interfejs PlanszaI zostanie napisana przeze mnie. Zarówno klasa testująca jaki i implementacja PlanszaI nie zostaną udostępnione.
Obiekt klasy Gracz zostanie utworzony za pomocą konstruktora domyślnego (bezargumentowego).
Uwagi
Modyfikacja klas bazowych i interfejsów jest zabroniona.
Proszę nie przesyłać w rozwiązaniach klas czy interfejsów, które sam publikuje
Klasę uruchamiającą program (Start) w tym projekcie pisze sam
W programie testującym (klasa Start) wykonane zostaną takie operacje:
Gra g = new Gracz();
g.rejestracjaPlanszy( p ); // p to wskaźnik do obiektu typu PlanszaI
Kody źródłowe plików Gra.java i PlanszaI.java
plik Gra.java
abstract public class Gra {
/**
Metoda pozwala na przeslanie referencji do obiektu typu PlanszaI.
Metoda ta na pewno zostanie wykonana jako pierwsza.
@param p Referencja do obiektu typu PlanszaI
*/
public void rejestracjaPlanszy( PlanszaI p );
/**
Metoda uruchamia gre. Ma sie zakonczyc po zatopieniu
wskazanej liczby okretow.
@param liczbaOkretowDoZatopienia Liczba jednostej znajdujacych
sie na planszy. Wszystkie nalezy zatopic.
*/
public void graj( int liczbaOkretowDoZatopienia );
}
plik PlanszaI.java
public interface PlanszaI {
/**
Metoda pozwala na poznanie rozmiaru planszy. Plansza jest dwowymiarowa i
kwadratowa.
@return Dlugosc boku planszy w liczbie pol
*/
public int rozmiar();
/**
Strzal na podana pozycje. Pozycje x i y liczymy od 0 do rozmiar() - 1.
@return Wynik strzelania na podana pozycje. 0 pudlo, 1 trafiony.
Jesli oddane zostana dwa strzaly na ta sama pozycje, na ktorej stoi jednostka,
to oba zakoncza sie zwroceniem 1
*/
public int strzal( int poz_x, int poz_y );
}
Bardzo proszę o pomoc / nakierowanie mnie. Z java dopiero zaczynam zabawę i nie jest mi łatwo pogodzić wszystko naraz (praca / szkoła ). Jeszcze raz podkreślam, nie oczekuję od Państwa gotowej klasy, tylko podpowiedzi/sugestii co i jak.
Bardzo dziękuję za okazaną pomoc.
Tomek
niezdecydowany