Конечный автомат (FSM) и Java для Android - PullRequest
16 голосов
/ 23 сентября 2010

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

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

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

Ответы [ 4 ]

8 голосов
/ 16 апреля 2013

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

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

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

5 голосов
/ 23 февраля 2011

Android имеет внутренний иерархический конечный автомат (HSM), который интегрируется с очередью сообщений Android.

Это внутреннее устройство, поэтому вы не можете получить к нему явный доступ из SDK.1004 * Однако, если вы следуете условиям лицензии Apache 2.0, вы можете создать свою собственную версию.
https://android.googlesource.com/platform/frameworks/base/+/gingerbread-release/core/java/com/android/internal/util/HierarchicalStateMachine.java

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

2 голосов
/ 14 июля 2016

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

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

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

0 голосов
/ 15 июля 2016

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...