2010-09-23 174 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項目的一部分,所以我認爲這是一個很好的測試。希望這個幫助。