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

if rotate_angle==0: //需要旋转的角度为零

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

问题是前面的向右转 和后面的 如果旋转的角度不为零 矛盾了。怎么解决

不知道你写的这段脚本是用于机器人还是用于游戏的AI编程,看你脚本的意思,应该rotate_angle其实是之前运算出来的下一帧要执行的动作状态。而distance<1这个判断在逻辑上属于状态的运算,而Rotate()应该属于状态的执行,关键在于你Rotate()内部是已经执行动作了还是只是一个状态的运算判断,还有就是rotate_angle这个状态值是在哪里进行的修改。我觉得状态的运算和状态的执行最好分开来比较清楚。先算好当前的状态会引发的下一个状态是什么,然后再执行,根据执行的结果作为下一帧的输入。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜