Ejemplo n.º 1
0
def basic_coop_direction(board):
    possibles = [
        d for d in rules.DIRECTIONS if rules.move_dir_possible(d, board)
    ]

    if possibles != [3] and 3 in possibles:
        possibles.remove(3)  #Ne jamais jouer haut quand on peut l'éviter

    score = {basic_coop_score(rules.move_dir(d, board)): d for d in possibles}

    return score[max(score)]
def game_direction_first(dir_player, tile_player, board):
    i = 0
    while not rules.game_over(board):
        direction = dir_player(board)
        assert (direction is not None)  #On peut jouer
        assert (0 <= direction < 4)  #On ne peut jouer que 4 directions
        assert (rules.move_dir_possible(direction, board))
        board = rules.move_dir(direction, board)
        tuile = tile_player(board)
        assert (tuile is not None)
        rules.move_tile(tuile, board)
        i += 1
    return (1 << rules.max_tile(board), i)  #1 << a is 2 ** a
Ejemplo n.º 3
0
def test_move_dir_possible(direction, board, expected):
    if not STAGE_SLIDE_IS_OVER:
        assert_equal(rules.move_dir_possible(direction, board), expected)
        if expected:
            start_test("game not over", INDENT)
            assert not rules.game_over(board)
        return
    start_test("mimicking with rules.move_dir", INDENT)
    xboard = [board[i].copy() for i in range(rules.SIZE)]
    res = rules.move_dir(direction, xboard)
    if expected:
        if res == xboard:
            print("Error of rules.slide on input", xboard)
            print("Output is the same while it should be different")
            assert res != xboard
    elif res is not xboard:
        print("Error of rules.slide on input", xboard)
        print("Output is ", xboard)
        assert xboard is board
    start_test("purity", INDENT)
    assert_equal(board, xboard)
Ejemplo n.º 4
0
def random_direction(board):
    l = [d for d in rules.DIRECTIONS if rules.move_dir_possible(d, board)]
    if l:
        return random.choice(l)
Ejemplo n.º 5
0
def first_direction(board):
    for d in rules.DIRECTIONS:
        if rules.move_dir_possible(d, board):
            return d