2010-09-23 172 views
16

我愿意为开发一款足球游戏Android有限状态机(FSM)和Android的Java

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

使用Google搜索发现了一些用Java编写的FSM,但没有与Android明确兼容:我想知道是否有人在此之前使用FSM作为该平台。

+0

你使用Maven构建? – 2015-04-24 08:19:31

回答

2

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

+0

我最终创造了我自己的。我希望能够在代码中声明状态转换表。 https://github.com/olibye/guvna – byeo 2012-06-03 19:07:45

8

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

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

您也可以将contribute添加到项目中。

+0

该项目不再支持,浪费了我的时间 – 2017-02-22 11:54:06

+0

看看这个http://stackoverflow.com/a/43964422/2267723 – 2017-05-14 13:29:06

1

在Android中使用并由Google提供的此状态机(FSM)实现似乎是一个不错的选择。你可以得到它here on Github

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

我没有找到很多其他的选择,但是这个实现包含了我一直在寻找的所有功能。这是Android项目的一部分,所以我认为这是一个很好的测试。希望这个帮助。