def test_invalid_protocol(self): player1 = GoPlayerBase() self.assertRaisesAny(player1.receive_stone, StoneEnum.BLACK) player2 = GoPlayerBase() player2.register() history = get_simple_history_3() self.assertRaisesAny(player2.choose_move, history) player3 = GoPlayerBase() self.assertRaisesAny(player3.choose_move, history)
def init_referee(): go_ref = GoReferee(player1=GoPlayerBase("player1"), player2=GoPlayerBase("player2")) return go_ref
from constants import BLACK_STONE, WHITE_STONE from referee_formatter import format_pretty_json from go_referee import GoReferee from play_parser import format_input from go_player_base import GoPlayerBase def execute_input(play, referee): input_play = format_input(play) return referee.execute_move(input_play) if __name__ == "__main__": objs = json_parse_stdin() output = [] referee = GoReferee(player1=GoPlayerBase(objs[0]), player2=GoPlayerBase(objs[1])) output.append(BLACK_STONE) output.append(WHITE_STONE) for obj in objs[2:]: raw_out = execute_input(obj, referee) output.append(raw_out) if referee.game_over: if (not referee.winner_declared): output.append(referee.get_winners()) referee.winner_declared = True else: break
sys.path.append('../../../4/4.1/src/') from point import get_raw from json_parser import json_parse_stdin from obj_parser import parse_boards, parse_stone from constants import REGISTER, RECEIVE, MOVE from referee_formatter import format_pretty_json from go_player_base import GoPlayerBase def execute_input(player, arr): if arr[0] == REGISTER: return player.register() elif arr[0] == RECEIVE: stone = parse_stone(arr[1]) player.receive_stone(stone.get_type()) elif arr[0] == MOVE: boards = parse_boards(arr[1]) output = player.choose_move(boards) if isinstance(output, str): return output return get_raw(output) else: raise Exception("Invalid name given to execute input") if __name__ == "__main__": player = GoPlayerBase() objs = json_parse_stdin() output = filter(lambda x: x, [execute_input(player, obj) for obj in objs]) print(format_pretty_json(list(output)))
def init_player(): player = GoPlayerBase() player.register() player.receive_stone(StoneEnum.BLACK) return player
def test_receive_stone(self): player1 = GoPlayerBase("player1") player1.register() self.assertEqual(None, player1.stone_type) player1.receive_stone(StoneEnum.BLACK) self.assertEqual(StoneEnum.BLACK, player1.stone_type) player2 = GoPlayerBase("player2") player2.register() self.assertEqual(None, player2.stone_type) player2.receive_stone(StoneEnum.WHITE) self.assertEqual(StoneEnum.WHITE, player2.stone_type)
def test_register(self): player = GoPlayerBase() self.assertEqual("default_player", player.register())