【发布时间】:2018-07-08 15:55:14
【问题描述】:
所以我有一些代码可以在 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
【问题讨论】:
-
请检查您的代码。我得到
IndentationError和另一行None。另外,这显然是python-3.x,所以不要用 2.7 标记。 -
无我无法修复但我修复了缩进错误
-
None是因为您打印了drawBoard的结果。您还可以修复标签。
标签: python python-3.x python-2.7 list