You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)...
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
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.
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ś.
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.
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...
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);...
Activity
pzjp commentedon Apr 23, 2017
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
getPossibleMovessię nie kompiluje (niezainicjowanepossibilities)...cieplinski-tobiasz commentedon Apr 24, 2017
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 commentedon Apr 25, 2017
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 commentedon Apr 26, 2017
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 commentedon Apr 30, 2017
Do Game'a dodałbym metodę wyznaczającą środkowe współrzędne planszy w oparciu o metody
getMaxX,getMinX,getMaxYigetMinY, 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(zmiennadrawjest chyba zupełnie niepotrzebna, a w tej chwili nawet nie spełnia swojego zadania). MożemakeMovepowinna zwracaćtruegdy gra została rozstrzygnięta, albo dajmy jakąś metodęisFinishedczy coś.maro512 commentedon Apr 30, 2017
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 commentedon Apr 30, 2017
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 commentedon May 25, 2017
Jak w Game jest teraz pole
selectedto lepiej go używać w metodziemakeMove, zamiast pobierać współrzędne w argumentach. Poza tymgetCellto jedna linijka:board.getCell((int) pos.x, (int) pos.y);...cieplinski-tobiasz commentedon May 29, 2017
zmieniłem na selected, getCell poprawie