有限状态机(FSM)和Android的Java

我愿意为Android开发一款足球游戏。

因为AI的复杂性,我真的认为我需要使用FSM(有限状态机)来devise它,而不是使用怪物开关。

用Googlesearch一下,发现了一些用Java编写的FSM,但没有一个与Android明确兼容:我想知道在这个平台上是否有人在这里使用FSM。

Solutions Collecting From Web of "有限状态机(FSM)和Android的Java"

几个月前我正在为Android寻找FSM,但是找不到合适的东西,所以不得不创build自己的。

我现在在一些项目中使用它,非常高兴。 它使代码更清洁,易于使用。 如果有人还在为java寻找状态机,请检查EasyFlow 。

您也可以为项目做出贡献 。

Android有一个内部的分层状态机(HSM),它与Android消息队列集成在一起。

它是内部的,所以你不能从SDK明确地访问它。

但是,如果您遵循Apache 2.0许可证的条款,则可以制作自己的版本。
https://android.googlesource.com/platform/frameworks/base/+/gingerbread-release/core/java/com/android/internal/util/HierarchicalStateMachine.java

编辑:
这个类现在叫做StateMachine 。

Android中使用的这种状态机(FSM)实施方式似乎是一个不错的select。 你可以在Github上find它。

您可以使用StateMachine类来定义状态,初始状态,当您进入或退出状态时您可以执行任务,您可以发送事件和延迟事件以实现实例的超时。

我没有find许多其他的select,但是这个实现包含了我正在寻找的所有function。 这是Android项目的一部分,所以我认为这是一个很好的testing。 希望这个帮助。

Engine的另一个开源选项是@doridori