项目场景:
除了走路和跌倒之外,旅鼠有时还可以被告知做一些有用的事情,比如挖掘(当 dig=1 时它开始挖掘)。如果旅鼠目前在地面上行走(地面存在且没有坠落),则可以挖掘,并将继续挖掘,直到到达地面消失。在这一点上,由于没有地面,它会掉下来(啊!),然后在它再次落地后继续向原来的方向行走。与跌倒一样,在挖掘时被撞到是没有效果的,在跌倒或没有地面时被告知挖掘是被忽略的。(换句话说,行走的旅鼠可以跌倒、挖掘或改变方向。如果满足这些条件中的多个条件,则 fall 的优先级高于 dig,而 dig 的优先级高于切换方向的优先级。
扩展有限状态机以对此行为进行建模。
解决方案:
提示:分清状态
![](https://img-blog.csdnimg.cn/direct/3926e6ba30cf42e497d3e6fa196818f9.png)
![](https://img-blog.csdnimg.cn/direct/1d26592200564ba28b3cff985b69ca24.png)
![](https://img-blog.csdnimg.cn/direct/48164bb29efa41808f3731e283c20042.png)