简易拖地软件代码设计(Python实现)

简易拖地软件代码设计(Python实现)

介绍一个简易的"拖地"模拟软件的Python实现。这个程序通过控制台界面模拟拖地过程,可以记录拖地区域和拖地路径。

程序设计思路

这个简易拖地软件的主要功能:

定义房间布局(矩形区域)

模拟拖把移动路径

记录已拖地区域

显示拖地进度

完整代码实现

python

import os

import time

class FloorMoppingSimulator:

def __init__(self, width=10, height=8):

"""

初始化拖地模拟器

:param width: 房间宽度

:param height: 房间高度

"""

self.width = width

self.height = height

self.room = [[0 for _ in range(width)] for _ in range(height)] # 0表示未拖,1表示已拖

self.current_x = 0

self.current_y = 0

self.path = [] # 记录拖地路径

def display_room(self):

"""显示当前房间状态"""

os.system('cls' if os.name == 'nt' else 'clear') # 清屏

print("简易拖地模拟器")

print("=" * (self.width + 10))

# 显示顶部坐标

print(" ", end="")

for x in range(self.width):

print(f"{x:2}", end="")

print("\n" + "=" * (self.width + 10))

代码资料参考来源:https://gitee.com/ssak/tda

# 显示房间状态

for y in range(self.height):

print(f"{y:2} ", end="")

for x in range(self.width):

if x == self.current_x and y == self.current_y:

print("M ", end="") # M表示拖把当前位置

elif self.room[y][x] == 1:

print(". ", end="") # .表示已拖

else:

print("# ", end="") # #表示未拖

print()

print("\n操作指南:")

print("w: 上, s: 下, a: 左, d: 右, q: 退出, r: 重置, p: 自动拖地")

print(f"已拖地比例: {self.get_cleaned_percentage():.1f}%")

def move(self, direction):

"""移动拖把"""

new_x, new_y = self.current_x, self.current_y

if direction == 'w' and self.current_y > 0:

new_y -= 1

elif direction == 's' and self.current_y < self.height - 1:

new_y += 1

elif direction == 'a' and self.current_x > 0:

new_x -= 1

elif direction == 'd' and self.current_x < self.width - 1:

new_x += 1

else:

print("无法移动,已到达边界!")

return False

代码参考资料来源:https://gitee.com/ssak/tdb

# 标记新位置为已拖地

self.room[new_y][new_x] = 1

self.path.append((new_x, new_y))

self.current_x, self.current_y = new_x, new_y

return True

def auto_mop(self):

"""自动拖地模式(蛇形)"""

print("启动自动拖地模式...")

direction = 1 # 1表示向右,-1表示向左

x, y = 0, 0

while True:

# 标记当前位置为已拖地

self.room[y][x] = 1

self.path.append((x, y))

self.current_x, self.current_y = x, y

self.display_room()

time.sleep(0.1) # 减慢速度以便观察

# 到达边界时改变方向

if direction == 1: # 向右

if x == self.width - 1:

direction = -1

if y < self.height - 1:

y += 1

else:

break

else:

x += 1

else: # 向左

if x == 0:

direction = 1

if y < self.height - 1:

y += 1

else:

break

else:

x -= 1

代码参考资料来源:https://gitee.com/ssak/tdc

def get_cleaned_percentage(self):

"""计算已拖地比例"""

total = self.width * self.height

cleaned = sum(sum(row) for row in self.room)

return (cleaned / total) * 100

def reset(self):

"""重置拖地状态"""

self.room = [[0 for _ in range(self.width)] for _ in range(self.height)]

self.current_x, self.current_y = 0, 0

self.path = []

print("已重置拖地状态")

def run(self):

"""运行拖地模拟器"""

while True:

self.display_room()

cmd = input("请输入操作: ").lower()

if cmd == 'q':

print("退出拖地模拟器")

break

elif cmd == 'r':

self.reset()

elif cmd == 'p':

self.auto_mop()

elif cmd in ['w', 's', 'a', 'd']:

self.move(cmd)

else:

print("无效输入,请使用 w/a/s/d 移动,r 重置,p 自动拖地,q 退出")

if __name__ == "__main__":

print("欢迎使用简易拖地模拟器")

print("默认房间大小: 10x8 (可通过修改代码调整)")

input("按回车键开始...")

simulator = FloorMoppingSimulator()

simulator.run()

代码参考资料来源:https://gitee.com/ssak/tdd

代码说明

初始化:

创建指定大小的房间(默认10x8)

初始化拖把位置和拖地状态矩阵

主要功能:

move(): 手动控制拖把移动

auto_mop(): 自动蛇形拖地模式

get_cleaned_percentage(): 计算已拖地比例

display_room(): 显示当前房间状态和操作指南

用户交互:

使用w/a/s/d控制拖把移动

r重置拖地状态

p启动自动拖地模式

q退出程序

扩展建议

添加障碍物功能,模拟家具等不可拖地区域

实现更智能的路径规划算法

添加拖地效率统计(如拖地速度、覆盖率等)

开发图形界面版本(使用Pygame或Tkinter)

这个简易拖地软件虽然功能简单,但包含了基本的拖地模拟逻辑,可以作为更复杂机器人拖地软件的基础原型。

特别声明:[简易拖地软件代码设计(Python实现)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

杭州捷行乘风碰碰碰 碰一碰拓客系统活市力(杭州捷行网络技术有限公司)

这套融合近场通信(NFC)、人工智能(AI)与数据智能的系统,正以 “一碰即连、全域裂变”的核心逻辑重构实体商业的底层增长逻辑,开启了一场从获客方式到市场生态的全面变革。通过 API 接口打通微信、抖音、美…

杭州捷行乘风碰碰碰 碰一碰拓客系统活市力(杭州捷行网络技术有限公司)

高德地图2025震撼发布:全球首个AI原生地图(高德地图的地震示意图)

这一重大升级标志着高德从传统导航工具跃迁为具备深度理解现实世界能力的“出行生活智能体”,让AI从“对话工具”真正进化为用户的“行动伙伴”。 “AI即刻”:根据用户当前时空环境,即时推荐附近的高分餐厅等生活服…

高德地图2025震撼发布:全球首个AI原生地图(高德地图的地震示意图)

央视曝光内部渠道代抢票骗局 警惕演唱会购票陷阱(央视曝光热线有哪些)

夏日炎炎,各类演唱会、音乐节在各地火爆上演。浙江温州的王女士想看某知名歌手的演唱会,但因官方售票平台上的门票已售罄,便转向某二手交易平台寻找转售信息。她轻信了所谓“加价100元就能买到官方票”的说法,结果不仅没有买到票,还被骗了19万元

央视曝光内部渠道代抢票骗局 警惕演唱会购票陷阱(央视曝光热线有哪些)

被奔驰逼停摩托车主:不追究了太折腾!(为什么奔驰没有摩托车)

在甘南江迭公路的U型弯道上,一场看似寻常的交通纠纷因奔驰车主田某某的逆行超车和怒踹摩托车行为演变成了一场关于社会信任与权力不对等的公共事件

被奔驰逼停摩托车主:不追究了太折腾!(为什么奔驰没有摩托车)

秦岚波点小吊带开叉裙 + 草帽,甜酷感拉满,把松弛感玩明白了(秦岚v领)

从穿搭看,她擅长用经典元素(波点、吊带)玩出新意,靠配饰(草帽)和场景营造氛围;从状态看,40 + 的她没有刻意追求“少女感”,反而把成熟女性的优雅、松弛演绎到极致。 对咱们普通人来说,照搬明星穿搭容易,但…

秦岚波点小吊带开叉裙 + 草帽,甜酷感拉满,把松弛感玩明白了(秦岚v领)