Beispiel #1
0
def board_with_0_chain():
    return Board([
        Unknown, Unknown, Unknown, Unknown, Unknown, Unknown, Unknown, Unknown,
        Fire, Unknown, Unknown, Unknown, Unknown, Fire, Unknown, Unknown,
        Unknown, Unknown, Unknown, Fire, Fire, Unknown, Unknown, Unknown,
        Unknown, Unknown, Unknown, Unknown, Unknown, Unknown
    ], 5, 6)
Beispiel #2
0
def board():
    return Board([
        Fire, Unknown, Unknown, Unknown, Dark, Dark, Fire, Water, Unknown,
        Heart, Unknown, Dark, Fire, Water, Heart, Heart, Unknown, Unknown,
        Unknown, Water, Unknown, Unknown, Unknown, Unknown, Unknown, Water,
        Unknown, Light, Light, Light
    ], 5, 6)
Beispiel #3
0
def test_invalid_board():
    # length of list must be equal to row x column for the board to be valid
    with pytest.raises(Exception) as exec_info:
        Board([Fire, Water, Wood, Dark, Light, Heart, Poison, Jammer, Unknown],
              10, 10)
    assert 'Given pieces do not fit specified board dimensions!' in str(exec_info.value), \
        "Board's pieces list was smaller than dimensions, but did not fail initialization!"

    with pytest.raises(Exception) as exec_info:
        Board([Fire, Water, Wood, Dark, Light, Heart, Poison, Jammer, Unknown],
              2, 2)
    assert 'Given pieces do not fit specified board dimensions!' in str(exec_info.value), \
        "Board's pieces list was bigger than dimensions, but did not fail initialization!"

    with pytest.raises(Exception) as exec_info:
        Board([Fire, Water, Wood, Dark, Light, Heart, Poison, Jammer, Unknown],
              0, 3)
    assert 'Given pieces do not fit specified board dimensions!' in str(
        exec_info.value
    ), "Board's row was invalid, but did not fail initialization!"
Beispiel #4
0
def test_board_setup():
    # as long as length of piece list is equal to row x column, the board yields no error and loads from top left down to bottom right
    b = Board([Fire, Water, Wood, Dark, Light, Heart], 2, 3)
    assert isinstance(b, Board), "Board valid 2x3, but was not instantiated!"
    assert isinstance(b.cell(0, 0),
                      Fire), "Unexpected piece @ 0,0 on 2x3 Board!"
    assert isinstance(b.cell(0, 1),
                      Water), "Unexpected piece @ 0,1 on 2x3 Board!"
    assert isinstance(b.cell(0, 2),
                      Wood), "Unexpected piece @ 0,2 on 2x3 Board!"
    assert isinstance(b.cell(1, 0),
                      Dark), "Unexpected piece @ 1,0 on 2x3 Board!"
    assert isinstance(b.cell(1, 1),
                      Light), "Unexpected piece @ 1,1 on 2x3 Board!"
    assert isinstance(b.cell(1, 2),
                      Heart), "Unexpected piece @ 1,2 on 2x3 Board!"
    assert b.rows == 2, "2x3 board has incorrect rows property!"
    assert b.columns == 3, "2x3 board has incorrect columns property!"
    assert len(b.board) == 2 and len(
        b.board[0]) == 3, "2x3 board has incorrect board dimensions!"

    b = Board([Fire, Water, Wood, Dark, Light, Heart], 3, 2)
    assert isinstance(b, Board), "Board valid 3x2, but was not instantiated!"
    assert isinstance(b.cell(0, 0),
                      Fire), "Unexpected piece @ 0,0 on 3x2 Board!"
    assert isinstance(b.cell(0, 1),
                      Water), "Unexpected piece @ 0,1 on 3x2 Board!"
    assert isinstance(b.cell(1, 0),
                      Wood), "Unexpected piece @ 1,0 on 3x2 Board!"
    assert isinstance(b.cell(1, 1),
                      Dark), "Unexpected piece @ 1,1 on 3x2 Board!"
    assert isinstance(b.cell(2, 0),
                      Light), "Unexpected piece @ 2,0 on 3x2 Board!"
    assert isinstance(b.cell(2, 1),
                      Heart), "Unexpected piece @ 2,1 on 3x2 Board!"
    assert b.rows == 3, "3x2 board has incorrect rows property!"
    assert b.columns == 2, "3x2 board has incorrect columns property!"
    assert len(b.board) == 3 and len(
        b.board[0]) == 2, "3x2 board has incorrect board dimensions!"
Beispiel #5
0
    Heart.symbol: 1.0,
    Poison.symbol: 0.5,
    Jammer.symbol: 0.5,
    Unknown.symbol: 0.0
}

#board = Board.create_randomized_board(5, 6)

piece_list = [
    Fire, Wood, Water, Dark, Light, Heart, Fire, Water, Dark, Light, Heart,
    Fire, Fire, Water, Dark, Heart, Heart, Wood, Light, Water, Light, Fire,
    Wood, Wood, Dark, Water, Dark, Light, Light, Light
]
number_of_rows = 5
number_of_columns = 6
board = Board(piece_list, number_of_rows, number_of_columns)
matches = board.get_matches()

print(board)
print(matches)

solver1 = GreedyDfs(weights)
solution = solver1.solve(board, 100)

print(solution)

solver2 = PrunedBfs(weights)
solution = solver2.solve(board, 100)

print(solution)
Beispiel #6
0
def board_with_3_chain():
    return Board([
        Fire, Wood, Water, Dark, Light, Heart, Fire, Water, Dark, Light, Heart,
        Fire, Fire, Water, Dark, Heart, Heart, Wood, Light, Water, Light, Fire,
        Wood, Wood, Dark, Water, Dark, Light, Light, Light
    ], 5, 6)
Beispiel #7
0
def board_with_1_chain():
    return Board([
        Fire, Wood, Water, Dark, Light, Poison, Water, Water, Water, Light,
        Heart, Jammer, Fire, Water, Dark, Heart, Heart, Wood, Light, Water,
        Light, Fire, Wood, Wood, Dark, Heart, Dark, Light, Heart, Light
    ], 5, 6)