Подтвердить что ты не робот

Конечный автомат (FSM) и Android Java

Я готов разработать футбольную игру для Android.

Поскольку сложность AI, я действительно думаю, что мне нужно ее создать, используя FSM (конечный автомат), а не с помощью монстра.

Googling вокруг я нашел несколько FSM, написанных на Java, но ничего явно не совместимо с Android: мне интересно, есть ли здесь кто-то, кто использовал FSM раньше для этой платформы.

4b9b3361

Ответ 1

Я искал FSM для Android несколько месяцев назад, но не смог найти ничего подходящего, поэтому мне пришлось создать свой собственный.

Я использовал его в нескольких проектах и ​​доволен. Это делает код намного чище и прост в использовании. Если кто-то еще ищет конечный автомат для java, проверьте EasyFlow.

Вы можете внести вклад в проект.

Ответ 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

Edit:
Этот класс теперь называется StateMachine.

Ответ 3

Эта реализация конечного автомата (FSM), используемая в Android и предоставляемая Google, кажется хорошим вариантом. Вы можете получить здесь, на Github.

Вы можете использовать класс StateMachine для определения состояний, исходного состояния, вы можете выполнять задачи при вводе или выходе из состояния, вы можете отправлять события и задержанные события, чтобы реализовать тайм-ауты, например.

Я не нашел много других альтернатив, но эта реализация содержит все функции, которые я искал. Это часть проекта Android, поэтому я предполагаю, что это было хорошо проверено. Надеюсь на эту помощь.

Ответ 4

Другой вариант с открытым исходным кодом - Engine by @doridori