回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>请允许我对<code>Python</code>有点陌生,我可以说python非常性感,直到我需要转换一个4x4矩阵的内容,我想用它来构建一个2048游戏的演示是<a href="http://gabrielecirulli.github.io/2048" rel="noreferrer" title="2048 by Gabriele Cirulli ">here</a>我有这个功能</p>
<pre><code>def cover_left(matrix):
new=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]
for i in range(4):
count=0
for j in range(4):
if mat[i][j]!=0:
new[i][count]=mat[i][j]
count+=1
return new
</code></pre>
<p>这就是这个函数的作用,如果你这样调用它</p>
^{pr2}$
<p>它将覆盖左边的0并生成</p>
<pre><code>[ [1, 2, 0, 0],
[3, 4, 0, 0],
[5, 6, 0, 0],
[7, 8, 0, 0]]
</code></pre>
<p>请让我需要有人来帮助我做这件事的<code>numpy</code>方式,我相信这将更快,需要更少的代码(我正在使用深度优先搜索算法),更重要的是,<code>cover_up</code>,<code>cover_down</code>的实现</p>
<pre><code>`cover_left`.
`cover_up`
[ [1, 7, 2, 8],
[3, 0, 4, 0],
[5, 0, 6, 0],
[0, 0, 0, 0]]
`cover_down`
[ [0, 0, 0, 0],
[1, 0, 2, 0],
[3, 0, 4, 0],
[5, 7, 6, 8]]
`cover_right`
[ [0, 0, 1, 2],
[0, 0, 3, 4],
[0, 0, 5, 6],
[0, 0, 7, 8]]
</code></pre>
<p>提前谢谢。在</p>