python3 题解(48 小机器人行走)

该博客探讨了一个小机器人根据'L'(左转90度)、'R'(右转90度)和行走距离指令(如'100')移动的问题。在直角坐标系中,机器人的初始位置是(0,0),头朝北。通过构建函数或设计一个面向对象的解决方案来跟踪机器人的位置和方向。最后,输出机器人完成所有指令后的坐标。" 78446313,5629847,立方差数与质数:判断给定质数是否为立方差数,"['数学', '算法', '数论']
摘要由CSDN通过智能技术生成

小机器人行走

【问题】有一个小机器人放在地面上,它可以接受指令,进行转向和行走的动作。
‘L’ 表示左转90度。‘R’ 表示右转90度。‘100’ 表示向前走100cm。
先对小机器人的位置方位定义个直角坐标:
x 轴自西向东,y轴自北向南。
小机器人的初始位置为(0,0),并且它头朝北。
此时,如果给它一系列的指令,比如:100,L,R,15,R,R,6,17,25,L,L,17,26,15,R,L
求小机器人最后的位置坐标。

分析:
可以构造这样一个函数,接受当前状态和指令,返回新的状态。
状态可以定义为 (x,y,head), 用在三个整数分别表示机器人的当前坐标和头的朝向。

### 小机器人行走
def robotWalk(cmd):
	def step(state,s):  ## head=0 表示北,1表示西, ..
		x,y,head = state
		if s == 'L':
			return (x, y, (head + 4 - 1) % 4)
		if s == 'R':
			return (x, y, (head 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值