projekt szachów (Java)

0

Chciałbym uzyskać od was ocenę mojego projektu szachów oraz propozycje, co można by było w tym poprawić.

Klasa Chessboard tworzy ramkę, zawiera dwuwymiarową tablicę obiektów klasy Pole, obsługuje klikanie w te pola oraz wysyłanie do pól wiadomości o kliknięciu. Pobiera od obiektów klasy Pole kolor i zawartość oraz je rysuje.
Klasa Pole zawiera informację o kolorze pola i pionku (obiekcie klasy Checker), które stoi na danym polu. Wykonuje czynności na podstawie informacji o kliknięciu. Posiada również współrzędne pola na szachownicy
Klasa Checker posiada informacje o wyglądzie pionków. Importuje je z jednego obrazka.
Ten jeden obrazek zawiera wygląd wszystkich pionków, teksturę gry w tle, kolory pól itd. Dzięki temu, każda gotowa do tego osoba może w programie typu GIMP łatwo zmienić wygląd gry.

To jest taki podstawowy projekt, w którym zamieściłem również poruszanie się pionków - a raczej przenoszenie ich w dowolne miejsce. Zastanawiam się nad sposobem zaimplementowania zasad gry i pomyślałem nad klasą Rule i jej metodą isValid(Pole src, Pole dest). Metoda sprawdza, czy pionek stojący na polu src może przejść na pole dest. Będzie sprawdzała przede wszystkim, czy pionek z src należy do gracza wykonującego ruch oraz czy na polu dest nie stoi przypadkiem pionek tego samego koloru, co z pola src. Dalej mam dwa pomysły:

#Klasa Rule będzie pobierała z src typ pionka i na tej podstawie sprawdzała pozostałe ruchy
#Pojawią się klasy dziedziczące po Rule dla każdego typu pionka, w której metoda isValid(Pole src, Pole dest) wywołuje najpierw super.isValid(Pole src, Pole dest) i w razie, gdyby zwróciło true, wykonać resztę działań

Według mnie, łatwiej byłoby wykonać drugi przykład, lecz stworzy on sporą ilość klas. Pierwszy przykład może z kolei stworzyć naprawdę rozbudowaną metodę. Które rozwiązanie będzie lepsze? A może macie jakieś swoje?

1

Parę pomysłów było tu: Projekt Szachów
Czemu nagle szachy stały się takie popularne?
Sam chciałem takie coś napisać, tylko wiecznie nie mam czasu.

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