maro512 / Loop2

Apache License 2.0
0 stars 0 forks source link

Game #1

Open maro512 opened 7 years ago

maro512 commented 7 years ago

Połączenie modelu z wyświetlaniem

pzjp commented 7 years ago

Jeśli chodzi o gracza-remis, to zrobiłbym go jakimś globalnym obiektem (finalnym). Wtedy można by go porównywać za pomocą == a nie sprawdzając nazwę. Poza tym obecna wersja getPossibleMoves się nie kompiluje (niezainicjowane possibilities)...

cieplinski-tobiasz commented 7 years ago

może jednak lepiej w game zrobić zmienną boolean draw i ją zmieniać na true, gdy pojawi się remis? poprawię, nie miałem kompilatora pod ręką pisząc ten kod

cieplinski-tobiasz commented 7 years ago

dobra, game skończone, powinno być ok. użyłem zmiennej boolean do remisu. jeśli uznacie że wszystko jest ok to możecie odhaczyć issue

pzjp commented 7 years ago

Problem jest z playerami. Nie można ich ani dodać z zewnątrz, ani nie są tworzeni w Game... Wygląda na to, że tworzysz tablicę Player wypełnioną dwoma nullami i nigdy nie zapisujesz tam prawdziwego obiektu ani nie dajesz nikomu możliwości tego zrobić. Można albo dodać metody setWhite/BlackPlayer albo zmodyfikować konstruktor. O ile Board jest wewnętrzną sprawą Game, to gracze chyba "przychodzą" z interfejsu.

pzjp commented 7 years ago

Do Game'a dodałbym metodę wyznaczającą środkowe współrzędne planszy w oparciu o metody getMaxX, getMinX, getMaxY i getMinY, albo niech opakuje te wartości w jakąś użyteczną strukturę ("prostokąt"?). Na razie można tego używać do umieszczania geometrycznego środka planszy na środku ekranu, a w przyszłości można użyć skrajnych współrzędnych, żeby nie dało się przesunąć ekranu poza planszę. Poza tym sprawdzanie remisu jest wykonywane tylko w metodzie whoWon (zmienna draw jest chyba zupełnie niepotrzebna, a w tej chwili nawet nie spełnia swojego zadania). Może makeMove powinna zwracać true gdy gra została rozstrzygnięta, albo dajmy jakąś metodę isFinished czy coś.

maro512 commented 7 years ago

metoda wyznaczająca środkowe współrzędne nie jest potrzebna, a ograniczać planszy chyba też nie będziemy. Najlepiej byłoby gdyby gracz mógł położyć pierwszą płytkę tam gdzie chce, ale jeśli tak się nie da to ustawimy na środku sztywny punkt i jak będzie możliwość przesuwania i powiększania planszy to sobie ustawi jak mu pasuje.

pzjp commented 7 years ago

W tej chwili można po prostu zachować globalne przesunięcie współrzędnych (nawet z dokładnością do piksela) powstające przy pierwszym kliknięciu. "Krawędzie planszy" (to tylko skrajne współrzędne dotychczas wyłożonych płytek) są chyba potrzebne, bo jak ktoś przesunie planszę tak, że nie będzie tam ani jednej płytki, to chyba nie będzie dobrze...

pzjp commented 7 years ago

Jak w Game jest teraz pole selected to lepiej go używać w metodzie makeMove, zamiast pobierać współrzędne w argumentach. Poza tym getCell to jedna linijka: board.getCell((int) pos.x, (int) pos.y);...

cieplinski-tobiasz commented 7 years ago

zmieniłem na selected, getCell poprawie