Frage

Betrachten wir ein Spiel, ähnlich wie pac-mac, dass wir es mit einem FSA Diagramm darstellen möchten. Wir haben ein Labyrinth (Tabelle), und es gibt Beeren hinein in zufälligen Positionen. Das Ziel ist es, alle Beeren im Labyrinth zu essen. Die Befehle müssen wir für die Steuerung zu berücksichtigen sind die folgenden:
GOAHEAD, LINKS, RECHTS, CHECKBERRY (das überprüft, ob eine Beere vor pac man ist), EAT und OFF-MAZE.
Wir brauchen maximal 10 Stufen ... Und denken Sie daran, wir nicht mehr als eine Spalte in einer Reihe haben kann. Danke

EDIT: alt text http://img338.imageshack.us/img338/2479/graphp.jpg

ok dann. Ich habe die Grafik, aber ich kann nicht einen Weg zur Überführung Lücken finden. Zum Beispiel: Auf dem Labyrinth nach einer bestimmten Reihe von Beeren ganz plötzlich gibt es eine Lücke vor und die nächste Beere ist auf der ganzen Lücke. So bin ich nicht sicher, wie mein Diagramm wie als auch aussehen, wenn ich links oder rechts der checkberry Befehl nicht TRUE Wert zurück. Also muss es einen Weg, um für die pac man auf den Spalt Platz zu bewegen, ohne essen, aber wie wird es entscheiden, ob sie einen vor sich zu bewegen oder zu anderen?

War es hilfreich?

Lösung

Wenn Sie eine Zustandsdiagramm entwerfen, versuchen Sie zunächst herauszufinden, welche Art von Staaten , dass Ihr Zustandsmaschine haben, statt Nummerierung die Staaten.

Hier ist ein einfaches Beispiel, Ihre "pac man" muss sein, zu Fuß, Kontrolle und essen. So gibt es drei Zustände IS_WALKING, IS_CHECKING und IS_EATING. Das Diagramm für geradeaus überqueren und essen konnte unter so etwas wie die Figur sein. Ich bin mir nicht sicher, welche Art von Diagramm Notation Sie verwenden, obwohl ich hoffe, dass es für Sie einige Dinge klar werden wird.

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

Die Übergänge sind natürlicher und einfacher, um herauszufinden, wenn Sie für die Staaten entsprechende Namen haben. Beispiel für einen guten Namen für Zustand ist eine, die ganz klar formuliert, was die Zustandsmaschine in einem bestimmten Moment tut.

Andere Tipps

Wenn Sie um Hilfe von Stackoverflow auf diese Art von Frage suchen; Sie müssen natürlich schauen, was Sie tun. Ihre Frage muss noch konkreter werden. Haben Sie ein Problem mit einem bestimmten Codierung Problem, oder wissen Sie nicht, wo anfangen? Ist dies bedeutet ein triviale excersise oder ausgewachsenes Projekt sein?

Versuchen Sie, eine Mindmap zu machen, was Sie wollen tun und sehen, wo man von dort mit den Fähigkeiten gehen, können Sie im Moment haben. Kommen Sie zurück, wenn Sie in ein tatsächliches Problem führen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top