在2048游戏中向左移动

时间:2018-07-08 15:55:14

标签: python python-3.x python-2.7 list

所以我有一些代码可以在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的面板中,并将所有非零数字向上移动。
非班次董事会:

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

1 个答案:

答案 0 :(得分:0)

我建议您旋转行/列引用,并且代码将相同。想象一下,您逆时针旋转网格,使第一列为最后一行,第一行为第一列