Esempio n. 1
0
def test_can_find_kings():
    #because tabs start random, repeat a bunch of times to compensate
    king = Ranks.KING
    for i in range(1000):
        tab = Tableau()
        kings = tab.find_kings()
        assert len(kings) == 4
        for k in kings:
            assert tab.grid[k[0]][k[1]].rank == king
Esempio n. 2
0
def test_can_find_kings():
    #because tabs start random, repeat a bunch of times to compensate
    king = Ranks.KING
    for i in range(1000):
        tab = Tableau()
        kings = tab.find_kings()
        assert len(kings) == 4
        for k in kings:
            assert tab.grid[k[0]][k[1]].rank == king
Esempio n. 3
0
def busted_tableau():
    tab = Tableau()
    kings = tab.find_kings()
    continue_loop = True
    loop_counter = 0
    while continue_loop:
        if loop_counter > 100:
            tab = Tableau()
        gaps = tab.find_gaps()
        kings = tab.find_kings()
        i = 0
        for g in gaps:
            gap_row = g[0]
            gap_col = g[1]
            king_row = kings[i][0]
            king_col = kings[i][1]
            if gap_col == 0:
                tab.grid[gap_row][0],tab.grid[king_row][king_col] = \
                    tab.grid[king_row][king_col], None
            else:
                tab.grid[gap_row][gap_col-1], tab.grid[king_row][king_col] = \
                tab.grid[king_row][king_col], tab.grid[gap_row][gap_col-1]
            i += 1
        kings = tab.find_kings()
        continue_loop = False
        for king in kings:
            try:
                if king[1] == 12 or tab.grid[king[0]][king[1]+1] is not None:
                    continue_loop = True
                    loop_counter += 1
                    break
            except IndexError as ex:
                print king
                raise ex

    assert len(tab.find_gaps()) == 4
    assert len(tab.find_kings()) == 4
    return tab
Esempio n. 4
0
def busted_tableau():
    tab = Tableau()
    kings = tab.find_kings()
    continue_loop = True
    loop_counter = 0
    while continue_loop:
        if loop_counter > 100:
            tab = Tableau()
        gaps = tab.find_gaps()
        kings = tab.find_kings()
        i = 0
        for g in gaps:
            gap_row = g[0]
            gap_col = g[1]
            king_row = kings[i][0]
            king_col = kings[i][1]
            if gap_col == 0:
                tab.grid[gap_row][0],tab.grid[king_row][king_col] = \
                    tab.grid[king_row][king_col], None
            else:
                tab.grid[gap_row][gap_col-1], tab.grid[king_row][king_col] = \
                tab.grid[king_row][king_col], tab.grid[gap_row][gap_col-1]
            i += 1
        kings = tab.find_kings()
        continue_loop = False
        for king in kings:
            try:
                if king[1] == 12 or tab.grid[king[0]][king[1] + 1] is not None:
                    continue_loop = True
                    loop_counter += 1
                    break
            except IndexError as ex:
                print king
                raise ex

    assert len(tab.find_gaps()) == 4
    assert len(tab.find_kings()) == 4
    return tab