在 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 板,并将所有非零数字向上移动。
非移位板:

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

我建议您旋转行/列引用,代码将相同。想象你逆时针转动网格,所以你的第一列是最后一行,你的第一行是第一列

最新更新