吸尘黑板擦模型代码实现python
以下是一个简单的吸尘黑板擦模型代码实现,使用Python语言编写:
import random
class Cleaner:
def __init__(self, x, y, board):
self.pos = (x, y)
self.board = board
self.visited = set()
def clean(self):
self.visited.add(self.pos)
self.board[self.pos[0]][self.pos[1]] = 0
def move(self):
x, y = self.pos
dx, dy = random.choice([(0, 1), (0, -1), (1, 0), (-1, 0)])
new_x, new_y = x + dx, y + dy
if 0 <= new_x < len(self.board) and 0 <= new_y < len(self.board[0]):
self.pos = (new_x, new_y)
else:
self.move()
def run(self):
while len(self.visited) < len(self.board) * len(self.board[0]):
self.clean()
self.move()
board = [[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]
cleaner = Cleaner(0, 0, board)
cleaner.run()
print(board)
该代码实现一个基本的吸尘黑板擦模型,其中Cleaner类表示一个吸尘器,包括位置、访问过的位置和当前所在的黑板。clean()方法表示清除当前位置的灰尘,move()方法表示随机移动到相邻的位置,run()方法表示运行整个模型,不断清除灰尘并移动到新的位置。最后,使用一个3x4的黑板进行测试,并输出结果
原文地址: http://www.cveoy.top/t/topic/hoCs 著作权归作者所有。请勿转载和采集!