Вопрос

Рассмотрим игру, похожую на pac-mac, которую мы хотим представить с помощью графика FSA.У нас есть лабиринт (стол), и в нем ягоды расположены случайным образом.Цель состоит в том, чтобы съесть все ягоды в лабиринте.Команды, которые мы должны рассмотреть для управления, следующие:
ВПЕРЕД, ВЛЕВО, ВПРАВО, ЧЕКБЕРРИ (проверяет, есть ли ягода перед pac man), ЕШЬ и ВЫХОДИ из ЛАБИРИНТА.
Нам нужно максимум 10 этапов...И имейте в виду, что у нас не может быть более одного пробела подряд.Спасибо

Редактировать: альтернативный текст http://img338.imageshack.us/img338/2479/graphp.jpg

тогда ладно.Я создал график, но я не могу найти способ преодолеть пробелы.Например:В лабиринте после определенного ряда ягод внезапно впереди появляется просвет, и следующая ягода оказывается прямо в нем.Поэтому я не уверен, как будет выглядеть мой график, так как даже если я поверну влево или вправо, команда checkberry не вернет ИСТИННОЕ значение.Таким образом, у pac man должен быть способ переместиться на площадь разрыва, не съев ничего, но как он решит, перейти к тому, кто впереди, или к другим?

Это было полезно?

Решение

Если вы разрабатываете диаграмма состояний, попробуйте сначала выяснить , какого рода состояния что ваш государственная машина будет иметь, вместо нумерации состояний.

Вот простой пример, ваш "pac man" должно быть ходьба, проверка и еда.Итак , есть три состояния IS_WALKING, IS_CHECKING и IS_EATING.Схема перемещения прямо вперед и приема пищи может быть примерно такой, как показано на рисунке ниже.Я не уверен, какую диаграммную нотацию вы используете, хотя надеюсь, что это кое-что прояснит для вас.

                     GO_AHEAD
       +------------------------------------+
       |                                    |
       v                                    |
+----------------+      false            +------------+
| IS_CHECKING    |---------------------->| IS_WALKING |
+----------------+                       +------------+
| E: CHECK_BERRY |                          ^
+----------------+                          |
       |                                    |
       | true                               |
       v                                    |
 +-----------+               EAT            |
 | IS_EATING |------------------------------+
 +-----------+

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

Другие советы

Если вы ищете помощь от Stackoverflow по такого рода вопросам;очевидно, вам нужно посмотреть на то, что вы делаете.Ваш вопрос должен быть более конкретным.У вас возникли проблемы с конкретной проблемой кодирования, или вы не знаете, с чего начать?Предполагается ли, что это будет тривиальное упражнение или полномасштабный проект?

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top