Projekt Java - gra bitwa morska

0

Witam,
Mam do napisania w ramach projektu grupowego z Javy gre Statki - bitwa morska. Moim zadaniem jest napisanie klasy pocisk, rakieta, torpeda i mina.
Poniżej zamieszczam interfejs oraz szkielet moich klas, i mam pytanie czy taka organizacja będzie dobra jak napisać metodę wystrzel tak żeby pocisk leciał w zadanym kierunku(w poziomie pionie i po ukosie) i metodę rysuj do klas rakieta i torpeda oraz podłuż minę?

import java.awt.*;
import java.util.*;
import java.swing.ImageIcon;
import java.swing.JFrame;

public interface Ksztalt
{
public void rysuj();
public void obroc();
}

public class Plansza implements Ksztalt
{
    void rysuj(){}
}
public class Port implements Ksztalt
{
    void rysuj(){}

}
public class Statek implements Ksztalt
{
    int x,y;
    int predkosc;
    int energia;
    int bomba;  

    void rysuj(int x,int y){}

    void ustawPozycje(int x,int y){}

    void odejmijEnergie(){}
}

class Pocisk
{
 int xp, yp;                                // Pozycja która zostaje zczytana z planszy(mapy)
 int SILA_UDERZENIA;
 int PREDKOSC;

public void wystrzel(int x, int y)
{

}

}

class Torpeda extends Pocisk
{

void rysuj(int x,int y)
{

}

int zwrocSile()
{

return SILA_UDERZENIA;              //chce aby dla torpedy i rakiety metoda zwracała siłe 
}                                   //uderzenia i predkosc po przez metode wykonana na obiekcie
                                    //bo SILA_UDERZENIA i PREDKOSC sa dziedziczone

int zwrocPredkosc()
{

return PREDKOSC;
}

}

class Rakieta extends Pocisk
{

void rysuj(int x,int y)
{

}

int zwrocSile()
{

return SILA_UDERZENIA;              //chce aby dla torpedy i rakiety metoda zwracała siłe 
}                                   //uderzenia i predkosc po przez metode wykonana na obiekcie
                                    //bo SILA_UDERZENIA i PREDKOSC sa dziedziczone

int zwrocPredkosc()
{

return PREDKOSC;
} 

}

class Mina
{
int SILA;
int PROMIEN;        

int zwrocSiłeMiny()
{
SILA = 30;
return SILA;
}
int zwrocPromienMiny()
{
PROMIEN = 2;
return PROMIEN;
}

void podluzMine(int x, int y)
{

}

void rysuj(int x,int y)
{

}

}

public class BITWA_MORSKA extends JFrame
{

    int x,y;    
    int wysokosc, szerokosc;

public static void main(String[] args)
{

    }
}
0

Napisz całą treść projektu. Problem nie wydaje się trudny;

0

Chodzi o grę 2d bitwa morska po jednej stronie ma być port i kilka statków a po drugiej port przeciwnika(komputer). Jeśli chodzi o kod to nie mam nic więcej. w ogóle nie bardzo wiem jak się za to zabrać, jakbym miał jakiś przykład podobnej gry po przez interfejs to by mi pomogło.

0

Więc tak:
-Projektowo przydałaby się klasa bazowa dla obiektów morskich SeaObject zawierająca co najmniej położenie x i y na planszy.Możliwe,że przydałby się też stan obiektu: zatopiony,pod obstrzałem itd
-Klasa pochodna np MovableSeaObject od powyższej byłaby bazą dla tych obiektów,które mogą się poruszać.Zawierać będzie prędkość i kierunek ruchu.
-Dopiero z tego MovableSeaObjectu wywodziłbyś te swoje statki,rakiety,torpedy i pociski

0

Ma ktoś z was przykład Podobnej gry?

0

Z chęcią bym napisał taką grę. Potrzeba tylko troszeczkę czasu, przede wszystkim wymagań jakie ma spełniać gra. Najpierw to bym zajął się dekompozycją obiektową. Zauważ, że masz różne bronie pocisk, torpeda. Mają one jakieś cechy wspólne, więc po co je powtarzać. Jak ktoś już wcześniej napisał, możne je odziedziczyć po klasie np. MoveableSeaObject. Najpierw to przemyśl jakie obiekty, będą wchodzić w skład gry, jakie będą powiązania między nimi itp. Nie pisz kodu najpierw. To jest złe podejście. Weź kartkę papieru, zastanów się. Wypisz jakie obiekty będą Ci potrzebne i co mają one robić(metody). Po drugie za rysowanie może być odpowiedzialna inna klasa. Może w Twoim przypadku wykorzystać warto model MVC. Pomyśl... Ciężko mi jest powiedzieć. Nie wiem jak wygląda cały projekt.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0