Python实现10×10网格机器人移动控制项目求助(新手向)
10×10网格机器人移动控制实现代码
以下是完全符合需求的Python代码,附带关键逻辑的直白解释:
# 初始化机器人位置 x, y = 0, 0 # 网格边界(10x10网格的坐标范围是0-9,超出则越界) MAX_COORD = 9 while True: # 获取用户输入,自动去除首尾空格 cmd = input("请输入指令(如u5、d2,直接回车退出):").strip() # 空输入(直接回车)则退出程序 if not cmd: print("程序退出") break # 拆分指令的方向和步数部分 direction = cmd[0].lower() steps_str = cmd[1:] # 校验步数是否为有效整数 if not steps_str.isdigit(): print("错误:指令格式无效,请输入「方向(u/d/l/r)+整数步数」,比如u5") continue steps = int(steps_str) # 计算移动后的新位置 new_x, new_y = x, y if direction == 'u': new_y -= steps elif direction == 'd': new_y += steps elif direction == 'l': new_x -= steps elif direction == 'r': new_x += steps else: print(f"错误:无效方向「{direction}」,请使用u/d/l/r") continue # 检查新位置是否在网格范围内 if new_x < 0 or new_x > MAX_COORD or new_y < 0 or new_y > MAX_COORD: print("错误:移动后会超出网格边界,指令无效") continue # 更新位置并输出当前坐标 x, y = new_x, new_y print(f"当前位置:({x}, {y})")
关键逻辑说明
- 初始设置:机器人默认从左上角(0,0)出发,
MAX_COORD=9是因为10×10网格的有效坐标是0到9,超过这个数值就会越界。 - 指令循环:用
while True实现持续接收指令,直到用户直接按回车(空输入)才退出。 - 指令解析:
- 取输入的第一个字符作为移动方向,转成小写是为了兼容大写输入(比如U5也能识别)。
- 剩下的部分必须是纯数字,否则判定为格式错误。
- 方向计算:严格按照需求定义方向对坐标的影响:向下移动Y递增、向右移动X递增,向上/向左则对应递减。
- 边界校验:每次计算出新位置后,先检查是否在0-9范围内,不符合就提示错误,不更新机器人位置。
- 结果输出:只有指令完全有效时,才更新位置并打印当前坐标。
内容的提问来源于stack exchange,提问作者gallahant
相关产品推荐
相关产品推荐

