Exemplo n.º 1
0
def test_is_winner_no_end():
    tiles = []
    for _ in range(9):
        tiles.append(Tile())
    board = Board(tiles)
    board.tiles()[0].set_collapsed('x1')
    assert board.is_winner() == (None, [])
Exemplo n.º 2
0
def test_is_winner_one_option():
    tiles = []
    for _ in range(9):
        tiles.append(Tile())
    board = Board(tiles)
    board.tiles()[0].set_collapsed('x1')
    board.tiles()[1].set_collapsed('x3')
    board.tiles()[2].set_collapsed('x5')
    assert board.is_winner() == ('x', [0, 1, 2])
Exemplo n.º 3
0
def test_is_game_end():
    tiles = []
    for _ in range(9):
        tiles.append(Tile())
    board = Board(tiles)
    board.tiles()[0].set_collapsed('x1')
    board.tiles()[1].set_collapsed('x3')
    board.tiles()[2].set_collapsed('x5')
    game = Game(board)
    assert game.is_game_end() is True
Exemplo n.º 4
0
def test_could_collapse():
    tiles = []
    for _ in range(9):
        tiles.append(Tile())
    board = Board(tiles)
    board.add_entangl_tile(1)
    board.add_entangl_tile(2)
    board.tiles()[1].set_move_on_tile('x1')
    board.tiles()[2].set_move_on_tile('x1')
    assert board.could_collapse(1, 'x1') is True
Exemplo n.º 5
0
def test_is_not_entanglement():
    tiles = []
    for _ in range(9):
        tiles.append(Tile())
    board = Board(tiles)
    game = Game(board)
    board.tiles()[1].set_move_on_tile('x1')
    board.tiles()[2].set_move_on_tile('x1')
    board.tiles()[1].set_move_on_tile('x3')
    board.tiles()[3].set_move_on_tile('x3')
    game.set_last_move('x3')
    game.set_last_tile(1)
    assert game.is_entanglement() is False
Exemplo n.º 6
0
def test_analyse_board():
    tiles = []
    for _ in range(9):
        tiles.append(Tile())
    board = Board(tiles)
    board.add_entangl_tile(1)
    board.add_entangl_tile(2)
    board.tiles()[1].set_move_on_tile('x1')
    board.tiles()[2].set_move_on_tile('x1')
    board.tiles()[1].set_move_on_tile('y2')
    board.tiles()[2].set_move_on_tile('y2')
    board.collapse(1, 'x1')
    assert board.analyse_board() == ['-', 'x1', 'y2', '-', '-', '-', '-', '-', '-']
Exemplo n.º 7
0
def test_board_create():
    tiles = []
    for _ in range(9):
        tiles.append(Tile())
    board = Board(tiles)
    assert board.tiles() == tiles
    assert board.entangl_tiles() == []
Exemplo n.º 8
0
def test_game_entanglement():
    tiles = []
    for _ in range(9):
        tiles.append(Tile())
    board = Board(tiles)
    game = Game(board)
    assert game.entanglement is False
    assert game.basic is True
    board.tiles()[1].set_move_on_tile('x1')
    board.tiles()[2].set_move_on_tile('x1')
    board.tiles()[1].set_move_on_tile('x3')
    board.tiles()[2].set_move_on_tile('x3')
    game.set_last_move('x3')
    game.set_last_tile(2)
    game.game_entanglement()
    assert game.entanglement is True
    assert game.basic is False
Exemplo n.º 9
0
def test_bot_collapse(monkeypatch):
    tiles = []
    for _ in range(9):
        tiles.append(Tile())
    board = Board(tiles)
    game = Game(board)
    board.tiles()[1].set_move_on_tile('x1')
    board.tiles()[2].set_move_on_tile('x1')
    board.tiles()[1].set_move_on_tile('x3')
    board.tiles()[2].set_move_on_tile('x3')
    board.add_entangl_tile(1)
    board.add_entangl_tile(2)
    bot = Bot('easy', board, game)

    def one(a):
        return 1

    monkeypatch.setattr('quantum_tictactoe.bot.choice', one)
    assert bot.collapse() == '1,x3'
Exemplo n.º 10
0
def test_is_winner_more_options():
    tiles = []
    for _ in range(9):
        tiles.append(Tile())
    board = Board(tiles)
    board.tiles()[0].set_collapsed('x7')
    board.tiles()[1].set_collapsed('x3')
    board.tiles()[2].set_collapsed('x5')
    board.tiles()[3].set_collapsed('y2')
    board.tiles()[4].set_collapsed('y4')
    board.tiles()[5].set_collapsed('y6')
    assert board.is_winner() == ('y', [3, 4, 5])
Exemplo n.º 11
0
def test_is_game_end_more_options():
    tiles = []
    for _ in range(9):
        tiles.append(Tile())
    board = Board(tiles)
    board.tiles()[0].set_collapsed('x7')
    board.tiles()[1].set_collapsed('x3')
    board.tiles()[2].set_collapsed('x5')
    board.tiles()[3].set_collapsed('y2')
    board.tiles()[4].set_collapsed('y4')
    board.tiles()[5].set_collapsed('y6')
    game = Game(board)
    assert game.is_game_end() is True
Exemplo n.º 12
0
def test_collapse_error():
    tiles = []
    for _ in range(9):
        tiles.append(Tile())
    board = Board(tiles)
    board.add_entangl_tile(1)
    board.add_entangl_tile(2)
    board.tiles()[1].set_move_on_tile('x1')
    board.tiles()[1].set_move_on_tile('x3')
    board.tiles()[2].set_move_on_tile('x1')
    board.tiles()[1].set_move_on_tile('y2')
    board.tiles()[2].set_move_on_tile('y2')
    with pytest.raises(InvalidCollapseError):
        board.collapse(1, 'x3')
Exemplo n.º 13
0
def test_game_collapse_bot():
    tiles = []
    for _ in range(9):
        tiles.append(Tile())
    board = Board(tiles)
    game = Game(board)
    bot = Bot('easy', board, game)
    assert board.tiles()[1].is_collapsed() is False
    assert board.tiles()[2].is_collapsed() is False
    board.tiles()[1].set_move_on_tile('x1')
    board.tiles()[2].set_move_on_tile('x1')
    board.tiles()[1].set_move_on_tile('x3')
    board.tiles()[2].set_move_on_tile('x3')
    game.set_last_move('x3')
    game.set_last_tile(2)
    game.game_entanglement()
    game.game_collapse(bot, 'easy')
    assert board.tiles()[1].is_collapsed() is True
    assert board.tiles()[2].is_collapsed() is True