Пример #1
0
 def test_pick_move(self):
     strategy.computer_flag = model.O
     strategy.player_flag = model.X
     self.assertIn(strategy.pick_move(), [model.TOP_MID, model.MID_LEFT, model.MID_RIGHT, model.BOT_MID])
     strategy.computer_flag, strategy.player_flag = strategy.player_flag, strategy.computer_flag
     model.update_square(model.O, (1, 2))
     self.assertEqual(strategy.pick_move(), (1, 0))
Пример #2
0
def game_loop():
    """No return. Primary game loop."""
    global game_running
    game_running = True
    model.clear_board()
    start_player = random.choice(("You", "The computer"))
    print("{} will go first.".format(start_player))
    player_turn = True if start_player == "You" else False
    strategy.computer_flag = model.O if start_player == "You" else model.X
    strategy.player_flag = model.X if start_player == "You" else model.O
    while game_running:
        print(
            """[{0}][{1}][{2}]
[{3}][{4}][{5}]
[{6}][{7}][{8}]""".format(
                *current_board()
            )
        )
        if " " not in current_board():
            print("Draw game.")
            break
        if player_turn:
            game_control()
            if model.did_player_win(strategy.player_flag):
                print("You won.")
                game_quit()
            else:
                player_turn = not player_turn
        else:
            model.update_square(strategy.computer_flag, strategy.pick_move())
            if model.did_player_win(strategy.computer_flag):
                print("The computer won.")
                game_quit()
            else:
                player_turn = not player_turn
        clear()
Пример #3
0
 def test_pick_move(self):
     self.assertIn(strategy.pick_move(), [model.TOP_LEFT, model.TOP_RIGHT, model.BOT_LEFT, model.BOT_RIGHT])