Closed MarcinCiura closed 4 years ago
Zmiany zostały wprowadzone. Projekt gotowy do oceny.
Dziękuję za zmiany. Oto kolejna porcja uwag.
operator.itemgetter()
.BOARD_SIZE = 15
, BOARDSIZE = 15
itp. stałych w różnych modułach.HumanPlayer
i ComputerPlayer
, dziedziczące co trzeba z PlayerBase
. Ta druga mogłaby wciągnąć dotychczasową klasę AI
, której tworzenie luzem w Game
, oderwanej od gracza, który jej używa, jest nieładne.Game
do .played_moves
i .last_move
lepsze będzie collections.namedtuple
.main.py
nie ma funkcji main()
. Luźno lewitujący kod włożyć do funkcji. Zamiast if ...: continue; break
lepiej if not ...: break
.(BOARD_SIZE - 1) // 2 - 1, (BOARD_SIZE - 1) // 2 + 1
.test_check_board_state.py
przemianować na check_board_state_test.py
i powyrzucać self.setUp()
z metod.Dziękuj za uwagi. Zmiany zostały wprowadzone. Stworzyłem klasy PlayerBase, AiPlayer, HumanPlayer i przeniosłem do modułu players.py , a moduł ai został do tego modułu wciągnięty.
Dziękuję za zmiany. Jesteśmy blisko zakończenia.
screen = ...
do main()
i przekazywanie do tych 2 funkcji, które go potrzebują.()
.pass
. Sam docstring wystarcza. Jak Pan chce, można dać raise NotImplementedError
.game.py
, gdzie .menu()
powinno zwracać GameSettings(player1=..., player2=..., ...)
zamiast krotki, w której indeksy są magiczne, i w main()
używać settings.mode
itp. (game_
jest zbędne) zamiast game_settings[3]
itp.[Stworzyłem funkcje pomocniczą w check_board_state.py i wywołuje ją w testach tego modułu i konstruktorze klasy Game. Moduł gui.py wciągnąłem w klase bazową Gui, gdzie przez konstruktor jest przekazywany screen utworzony w mainie. Pozostałem klasy, które znajdowały sie w tym module dziedzicą screen po klasie Gui. GameSettings zostało przeniosione do game.py i używane w momencie returna z .menu do maina. Dziękuje za uwagi.
Dziękuję za uwagi. 1.Pylint nie zgłasza zastrzeżeń co do tej linijki 2.Wszystkie miejsca w kodzie z super().__init zostały zamienione.
LGTM. Gratuluję pracowitości, jest Pan pierwszy.
Super! Dziękuję bardzo za rady :D
Projekt całkiem nieźle się prezentuje. Jeśli AI działa, to po uwzględnieniu uwag i dopisaniu testów będzie po wszystkim.
opis_Gomoku.md
lepiej przenieść doREADME.md
.ai.py
dodać pusty wiersz między importami a stałymi (czy pylintowi się podoba tak, jak jest teraz?)"black"
,"white"
i"_"
zastąpić przezEMPTY, BLACK, WHITE = range(3)
(vide 2. rozdział Poradnika).b
klasyGame
ma niezrozumiałą nazwę (czy pylint go łyknął?).