用python写了一个程序,if条件有矛盾。
ifrotate_angle==0://需要旋转的角度为零ifdistance<1://如果前面有障碍物Rotate()//向右转else:Walk()//直走else:...
if rotate_angle==0: //需要旋转的角度为零
if distance<1://如果前面有障碍物
Rotate()//向右转
else:
Walk()//直走
else://如果需要旋转的角度不为零
rotate2()//旋转到正确的方向
问题是前面的向右转 和后面的 如果旋转的角度不为零 矛盾了。怎么解决 展开
if distance<1://如果前面有障碍物
Rotate()//向右转
else:
Walk()//直走
else://如果需要旋转的角度不为零
rotate2()//旋转到正确的方向
问题是前面的向右转 和后面的 如果旋转的角度不为零 矛盾了。怎么解决 展开
展开全部
不知道你写的这段脚本是用于机器人还是用于游戏的AI编程,看你脚本的意思,应该rotate_angle其实是之前运算出来的下一帧要执行的动作状态。而distance<1这个判断在逻辑上属于状态的运算,而Rotate()应该属于状态的执行,关键在于你Rotate()内部是已经执行动作了还是只是一个状态的运算判断,还有就是rotate_angle这个状态值是在哪里进行的修改。我觉得状态的运算和状态的执行最好分开来比较清楚。先算好当前的状态会引发的下一个状态是什么,然后再执行,根据执行的结果作为下一帧的输入。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询