欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > 小米机试 2048

小米机试 2048

2024/10/24 12:32:16 来源:https://blog.csdn.net/weixin_44298961/article/details/141064097  浏览:    关键词:小米机试 2048

小米机试 2048

  • 题目说明
  • 解题思路:
  • python代码

题目说明

《2048》是一款热门的数字游戏。游戏中,每个方块上的数字都有2的幂,数字方块会根据指令整体进行上下左右移动,如果两个数字相同的方块在移动中碰撞,他们就会合成一个新的方块。例如下图为4*4格子的游戏,0表示格子为空,图a为移动前格子中的数字,图b为图a左移后的结果:
例如:
输入
0 0 2 4
0 2 2 2
0 4 2 2
8 8 2 2
输出
2 4 0 0
4 2 0 0
4 4 0 0
16 4 0 0

解题思路:

从左到右遍历,如果a[i][j] == a[i][j+1]
则让 a[i][j] += a[i][j]
同时清除 a[i][j+1] = 0
最后删掉数组中的0元素
重新用一个空矩阵,把a的值挨个复制进去

python代码

n = 4
a = [[0,0,2,4],[0,2,2,2],[0,4,2,2],[8,8,2,2]]
for i in range(len(a)):for j in range(len(a[0])-1):if a[i][j] == a[i][j+1]:a[i][j] += a[i][j]a[i][j+1] = 0print(a)
for i in range(len(a)):while 0 in a[i]:a[i].remove(0)
print(a)
ans = [[0]*n  for _ in range(n)]
for i in range(len(a)):for j in range(len(a[i])):ans[i][j] = a[i][j]
print(ans)

输出结果:

[[0, 0, 2, 4], [0, 4, 0, 2], [0, 4, 4, 0], [16, 0, 4, 0]]
[[2, 4], [4, 2], [4, 4], [16, 4]]
[[2, 4, 0, 0], [4, 2, 0, 0], [4, 4, 0, 0], [16, 4, 0, 0]]

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com