def execute_move(move, board):
    """
    move and return the grid without a new random tile
	It won't affect the state of the game in the browser.
    """
    if move == UP:
        return game.merge_up(board)
    elif move == DOWN:
        return game.merge_down(board)
    elif move == LEFT:
        return game.merge_left(board)
    elif move == RIGHT:
        return game.merge_right(board)
    else:
        sys.exit("No valid move")
def execute_move(move, board):
    """
    move and return the grid
    """

    UP, DOWN, LEFT, RIGHT = 0, 1, 2, 3

    if move == UP:
        return game.merge_up(board)
    elif move == DOWN:
        return game.merge_down(board)
    elif move == LEFT:
        return game.merge_left(board)
    elif move == RIGHT:
        return game.merge_right(board)
    else:
        sys.exit("No valid move")
Exemple #3
0
def getMaxMergeMove(board):
    merges = [game.merge_up(board), game.merge_down(board), game.merge_left(board), game.merge_right(board)]
    blocks = sum(sum(x > 0 for x in merges))
    return blocks.tolist().index(min(blocks));
Exemple #4
0
    goal = []
    if (sum(sum(board)) % 20 < 2):
        for i in range(0,4):
            goal.append([2**((4*i)+j+1) for j in range(0,4)])
    
        goal[3] = goal[3][::-1]
        goal[1] = goal[1][::-1]
    else:
        for i in range(4):
            goal.append([2**(i+j) for j in range(4)])
    
	
    u = game.merge_up(board)
    d = game.merge_down(board)
    r = game.merge_right(board)
    l = game.merge_left(board)
	
    U = [x * y for x,y in zip(goal, u)]
    D = [x * y for x,y in zip(goal, d)]
    R = [x * y for x,y in zip(goal, r)]
    L = [x * y for x,y in zip(goal, l)]
    
    sumU = sum(sum(U))
    sumD = sum(sum(D))
    sumR = sum(sum(R))
    sumL = sum(sum(L))
	    
    sums = [sumU, sumD, sumL, sumR]
    best = max(sums)
    bestmove = sums.index(best)    
    
Exemple #5
0
def swipe_left(board):
    new_board = game.merge_left(board)
    return 0 if board_equals(board, new_board) else get_score_by_board(
        board, new_board, LEFT)