def test_stat_inc(scoreboard, data): temp1 = data['black'] temp2 = data['white'] scoreboard.stat_increment(data, Color.non, [HumanPlayer(Color.black), HumanPlayer(Color.white)]) assert temp1 + 1 == data['black'] assert temp2 + 1 == data['white']
def test_update_stat(): game = Game(3, 3, 3, [HumanPlayer(Color.black), HumanPlayer(Color.white)]) game.winner = Color.white scoreboard = Scoreboard("test_update") scoreboard.update_stat(game) assert os.path.exists("test_update.json") assert os.path.exists("test_update.txt") result = scoreboard.json_load("test_update.json") assert result[Color.black.name] == 0 assert result[Color.white.name] == 2 os.remove("test_update.txt") os.remove("test_update.json")
def open_settings_menu(self): self.display.fill(view_params.menu_color) counter = button.CounterWithLimits(8, 2) buttons = [] start_button = button.Button(120, 70, view_params.black_color) player_counter_button = button.Button(120, 70, view_params.menu_color, info="2") inc_button = button.Button(50, 70, view_params.white_color) dec_button = button.Button(50, 70, view_params.white_color) foul_button = button.SwitchButton( 120, 80, [view_params.menu_color, view_params.menu_color], ["Without foul", "With foul"], [False, True]) switches = [] i = 1 for color in view_params.colors: buttons.append( button.SwitchButton( 50, 50, [color, view_params.menu_color], [None, None], [const.Color(i), const.Color(i)])) i += 1 for i in range(8): switches.append( button.SwitchButton(100, 50, [ view_params.menu_color, view_params.menu_color, view_params.menu_color ], ["Human", "Random bot", "Smart bot"], [ HumanPlayer(buttons[i].current_item), RandomBot(buttons[i].current_item, const.PlayerEntity.bot), SmartBot(buttons[i].current_item, const.PlayerEntity.bot) ])) choice = True while choice: self.draw_button(75, 50, player_counter_button, buttons) self.draw_button(140, 50, player_counter_button, switches) player_counter_button.draw(self.display, 300, 100) inc_button.draw(self.display, 240, 100, player_counter_button, action=counter.button_value_increment_with_limit) dec_button.draw(self.display, 400, 100, player_counter_button, action=counter.button_value_decrement_with_limit) start_button.draw(self.display, 570, 300) foul_button.draw(self.display, 300, 200) # difficult_button.draw(self.display, 300, 300) for event in pygame.event.get(): if event.type == pygame.QUIT: choice = False if start_button.is_pressed: choice = False self.game_on_board( self.collect_players(int(player_counter_button.info), switches), foul_button.current_item) pygame.display.update()
def test_make_move_to(): game = g.Game( 3, 3, 3, [HumanPlayer(Color.black), RandomBot(Color.white, PlayerEntity.bot)]) human_player = game.players[0] bot_player = game.players[1] x, y = bot_player.make_move(game) assert human_player.make_move(game) is None assert 0 <= x < 3 and 0 <= y < 3
def test_player_create(): player = HumanPlayer(Color.black) assert player is not None assert player.color == Color.black
def collect_players_from_button(self, buttons): players = [] for i in range(len(buttons)): players.append( HumanPlayer(const.Color(i + 1), name=buttons[i].info)) return players
def bot_and_human_players(): return [HumanPlayer(Color.black), RandomBot(Color.white, PlayerEntity.bot)]
def two_human_players(): return [HumanPlayer(Color.black), HumanPlayer(Color.white)]
def test_game_init(game): assert game.board.length_to_win == 3 assert game.players is not None assert game.winner is None def test_game_init_with_human(two_human_players): game = g.Game(5, 5, 3, two_human_players) assert game.players[0].color == Color.black assert game.players[1].color == Color.white @pytest.mark.parametrize("test_input, expected", [([HumanPlayer(Color.red), HumanPlayer(Color.white), HumanPlayer(Color.black)], [Color.black, Color.white, Color.red]), ([HumanPlayer(Color.gray), HumanPlayer(Color.green), HumanPlayer(Color.yellow)], [Color.yellow, Color.green, Color.gray])]) def test_sorted_players(test_input, expected): game = g.Game(5, 5, 3, test_input) assert game.players[0].color == expected[0] assert game.players[1].color == expected[1] assert game.players[2].color == expected[2] assert game.current_player.color == expected[0]
def game(): return Game(15, 15, 5, [HumanPlayer(Color.black), SmartBot(Color.white, PlayerEntity.bot)])