You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 02:50:40