def test_display_function_outputs_correct_string_for_3x3( self, state, expected_output, capsys, mocker): mock_game = mocker.MagicMock( rows=3, columns=3, _actions_to_binary=actions_to_binary_list[0]) NoughtsAndCrosses.display(mock_game, state) output = capsys.readouterr().out assert output == expected_output
print("You are player: {}".format(human_player_no)) while not nac.is_terminal(state): player_no = nac.current_player(state) next_states = nac.legal_actions(state) if player_no == computer_player_no: action = computer_player.choose_action(state) computer_player.update(action) print("Taking action: {}".format(action)) else: action = None while action not in next_states: action_ix = int( input("Your move (0-8 reading " "across the board): ")) if 0 <= action_ix <= 8: action = nac.ACTION_SPACE[action_ix] computer_player.update(action) state = next_states[action] nac.display(state) print("\n") # The state is terminal, so let's see who won. utility = nac.utility(state) if utility[human_player_no] == 1: print("You win!") elif utility[human_player_no] == 0: print("It's a draw!") else: print("You lose!")