python 在矩阵中打印1到0转换的所有步骤的方法

yvt65v4c  于 2023-01-19  发布在  Python
关注(0)|答案(1)|浏览(181)

我用Python做了这个练习,但我还没弄明白。想象一下,我们有一个真空吸尘器,可以清除房间地板上的灰尘。这个房间是一个0和1的矩阵(程序允许用户插入大小);'1'表示脏,'0'表示干净。该真空吸尘器在矩阵中的位置是随机的(我成功地将其打印在矩阵上,值为-1,但希望为其分配一个字符,如'X')。该真空吸尘器只能移动一步,它可以在4个方向上移动,如下图:x1c 0d1x
目的是让吸尘器找到所有的数字1并将其转换为0,最后我们可以得到一个0的矩阵。我还想打印所有的步/移动,并计算吸尘器在此矩阵中所做的每一次移动。此转换是随机的,需要优化(清洁房间的最短时间)。
下面是我要修改的程序:

非常感谢你的帮助。

rta7y2nd

rta7y2nd1#

您应该首先列出代码必须执行的序列。

1. Get a list of possible locations to move
2. Pick one options from that list
3. Execute the movement

所以你的任务应该是写这三个函数。
第一个可以简单到只生成一个包含上、下、左、右的列表。您将看到您应该考虑边缘情况(例如:在最上面一排,因此您无法向上移动)
第二步是选择其中一个选项。它可以是完全随机的,也可以是只移动到脏瓷砖上的更好的选择,或者是一个复杂的路径优化。从最简单的选项开始:随机的。
第三个人应该更新清洁器的位置和更新矩阵。
现在,开始制作这些函数,使它们简单,当它们工作时,尝试实现更多的功能并考虑更多的情况。
给你的函数取个合适的名字。my_matrix不是一个函数的名字,因为它的作用是初始化你的设置。你可以叫它initialize
然后有一个初始化问题的主函数,并有一个循环,在其中执行函数序列。

相关问题