Внесение сдвига в сдвиг влево в игре 2048 [дубликат]

На этот вопрос уже есть ответ:

Поэтому у меня есть код, чтобы переместить доску чисел в игре 2048:

data = [0, 2, 4, 8, 0, 2, 8, 0, 0, 0, 0, 2, 4, 2, 2, 0]

def drawBoard(): # Making the board into a 2d array
    count = 0
    for i in range(16):
        print(data[i], end = ' ')
        count += 1
        if count == 4:
            print("")
            count = 0
print(drawBoard())

for col in range(4): #Loop to shift numbers up
    count = 0
    for row in range(4): # read loop
        if data[row*4+col] != 0:
            data[count*4+col] = data[row*4+col]
            count += 1
    for row in range(count, 4):
        data[row*4+col] = 0

print(drawBoard())

Это в основном принимает данные, превращает их в плату 4 x 4 и сдвигает все ненулевые номера вверх.
Non Shifted Board:

2 2 4 8
0 2 8 0
0 0 0 2
4 2 2 0

Сдвинутая доска:

2 2 4 8
4 2 8 2
0 2 2 0
0 0 0 0 

Есть ли способ использования того же формата, что и то, что я прокомментировал «цикл для сдвига чисел вверх» и сделать эту функцию сдвига в функцию сдвига влево?

Таким образом, доска сдвинулась влево, выглядит так:

2 2 4 8
2 8 0 0 
2 0 0 0 
4 2 2 0

python,python-3.x,python-2.7,list,python,

3

Ответов: 1


-1

Я предлагаю вам повернуть ссылку на строку / столбец, и код будет таким же. Имейте в виду, что вы поворачиваете сетку против часовой стрелки, чтобы ваш первый столбец был последней строкой, а ваша первая строка - первой колонкой

питон, питон-3.x, питон-2,7, список, питон,
Похожие вопросы