Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Klasa Game #1

Open
maro512 opened this issue Apr 11, 2017 · 3 comments
Open

Klasa Game #1

maro512 opened this issue Apr 11, 2017 · 3 comments
Assignees

Comments

@maro512
Copy link
Owner

maro512 commented Apr 11, 2017

Klasa zarządza przebiegiem gry

@cieplinski-tobiasz cieplinski-tobiasz self-assigned this Apr 15, 2017
@pzjp
Copy link
Collaborator

pzjp commented Apr 21, 2017

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
Copy link
Contributor

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
Copy link
Collaborator

pzjp commented Apr 21, 2017

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants