【发布时间】:2022-01-16 06:03:54
【问题描述】:
我有一个如下所示的 numpy 数组:
大小可以通过改变'row_num'和'col_num'变量来改变
[[0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0.]]
在程序过程中,数组可能如下所示:
[[0. 0. 0. 0. 0. 0. 0.]
[2. 2. 2. 0. 2. 0. 0.]
[1. 1. 1. 0. 1. 0. 0.]
[2. 2. 2. 0. 2. 0. 0.]
[1. 1. 2. 0. 2. 0. 0.]
[2. 2. 0. 0. 0. 0. 0.]
[1. 1. 0. 0. 0. 1. 0.]]
我正在尝试创建一个将数字向下移动的功能,例如重力。因此,一旦函数运行,数组将如下所示:
[[0. 0. 0. 0. 0. 0. 0.]
[2. 2. 0. 0. 0. 0. 0.]
[1. 1. 0. 0. 0. 0. 0.]
[2. 2. 2. 0. 2. 0. 0.]
[1. 1. 1. 0. 1. 0. 0.]
[2. 2. 2. 0. 2. 0. 0.]
[1. 1. 2. 0. 2. 1. 0.]]
目前,我的函数内的代码如下所示:
for cols in range(col_num):
for rows in range(row_num-1):
if board[rows][cols] == 0 and board[rows+1][cols] == 1:
board[rows+1][cols] = 0
board[rows][cols] = 1
print('move down 1')
elif board[rows][cols] == 0 and board[rows+1][cols] == 2:
board[rows+1][cols] = 0
board[rows][cols] = 2
print('move down 2')
打印语句正在工作,因此满足条件,但它不会更改数组
【问题讨论】: