用python写了一个程序,if条件有矛盾。

ifrotate_angle==0://需要旋转的角度为零ifdistance<1://如果前面有障碍物Rotate()//向右转else:Walk()//直走else:... if rotate_angle==0: //需要旋转的角度为零

if distance<1://如果前面有障碍物
Rotate()//向右转
else:
Walk()//直走
else://如果需要旋转的角度不为零
rotate2()//旋转到正确的方向

问题是前面的向右转 和后面的 如果旋转的角度不为零 矛盾了。怎么解决
展开
 我来答
PsyCracker
2015-02-21 · TA获得超过120个赞
知道答主
回答量:19
采纳率:0%
帮助的人:20.2万
展开全部
不知道你写的这段脚本是用于机器人还是用于游戏的AI编程,看你脚本的意思,应该rotate_angle其实是之前运算出来的下一帧要执行的动作状态。而distance<1这个判断在逻辑上属于状态的运算,而Rotate()应该属于状态的执行,关键在于你Rotate()内部是已经执行动作了还是只是一个状态的运算判断,还有就是rotate_angle这个状态值是在哪里进行的修改。我觉得状态的运算和状态的执行最好分开来比较清楚。先算好当前的状态会引发的下一个状态是什么,然后再执行,根据执行的结果作为下一帧的输入。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式