我愿意为Android开发一个足球游戏。 由于AI的复杂性,我认为需要使用FSM(有限状态机)来设计它,而不是使用巨大的开关。 在谷歌上搜索后,我发现一些用Java编写的FSM,但没有找到明确适用于Android的内容:我想知道是否有人曾经在该平台上使用过FSM。
几个月前我在寻找适用于Android的FSM,但是没有找到合适的,所以我不得不自己创建。现在我已经在几个项目中使用了它,并且非常满意。它使代码更加清晰易懂,也很容易使用。如果有人仍然在寻找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)实现似乎是一个不错的选择。你可以在Github上获取它。你可以使用StateMachine类来定义状态、初始状态,当你进入或退出一个状态时可以执行任务,你可以发送事件和延迟事件以实现超时等功能。我没有找到其他很多替代方案,但这个实现包含了我所寻找的所有特点。它是Android项目的一部分,所以我认为它经过了充分的测试。希望这有所帮助。