maro512 / Loop

Projekt przeniesiony do Loop2
MIT License
0 stars 1 forks source link

Klasa Game #1

Open maro512 opened 7 years ago

maro512 commented 7 years ago

Klasa zarządza przebiegiem gry

pzjp commented 7 years ago

Takie obserwacje/sugestie: 1) startGame() chyba faktycznie nie będzie potrzebne - niech to robi konstruktor. 2) Game chyba powinien sam tworzyć planszę, a nie pobierać z zewnątrz. 3) Zmiana gracza może powinna następować automatycznie, po wykonaniu ruchu? (no i można zmienić indeks w jednej instrukcji a nie brać modulo currentPlayer=1-currentPlayer;, ale to szczegół :) 4) getPossibleMoves może niech zwraca pustą listę ruchów zamiast null? Zwłaszcza, że i tak lista jest tworzona przed sprawdzeniem dostępności pozycji. 5) isBlackWin() && isWhiteWin() (jednoczesna "wygrana" obu graczy) oznacza remis. Jest mało prawdopodobna - podobnie jak powstanie "martwego pola". 6) Jak ktoś już wygrał, to nie powinno być dostępnych pozycji na planszy. Po końcu gry chyba nie można wykonać ruchu... 7) Co do zasady (czyt. o ile się nie pomyliłem) Board nigdy nie powinien zwrócić "martwego pola" z metody getAvailablePlace. Martwe pola są usuwane z hashmapy tuż po powstaniu (obecnie dzieje się to w linii #131 :).

cieplinski-tobiasz commented 7 years ago

Ad. 2 Poprawię Ad. 3 Zastanawiałem się nad tym, najwyżej zrobię to jako metodę prywatną. Chodzi Ci o bitowego XORa jak się domyślam, również przepiszę. Ad. 4 OK Ad. 5 W porządku, ale tego sie sprawdzam - powinienem to dodać w whoWon? Jak sugerujesz to reprezentować jeśli tak? Ad. 6 Dorzucę to do ifa Ad. 7 Racja, nie doczytałem kodu, również poprawię.

Odnieś się proszę szczególnie do pkt. 5, bo nie bardzo rozumiem, o co dokładnie chodzi.

pzdr

pzjp commented 7 years ago

Ad 3. Myślałem nie o XOR, tylko o tym odejmowaniu co napisałem :) 1-0=1, 1-1=0. Ale XOR z 1 też powinien działać. Ad 5. Tak, chodzi o whoWon. Tak jak jest to teraz zaimplementowane, jeśli mamy remis metoda zwróci, że wygrał biały. Można stworzyć "pustego" gracza i go zwracać, albo osobną metodę, która zwraca, czy gra się skończyła.