Pregunta

Considere un juego similar al pac-mac que queremos representar con un gráfico de la FSA. Tenemos un laberinto (tabla) y hay bayas en él en posiciones aleatorias. El objetivo es comer todas las bayas en el laberinto. Los comandos que tienen que tener en cuenta para el control son los siguientes:
GOAHEAD, IZQUIERDA, DERECHA, CHECKBERRY (que comprueba si existe una baya delante de pac man), comer y OFF-laberinto.
Necesitamos 10 etapas máximo ... Y tener en cuenta que no podemos tener más de uno vacíos en una fila. Gracias

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

ok entonces. He creado el gráfico, pero no puedo encontrar una manera de sobrepasar las brechas. Por ejemplo: En el laberinto después de una cierta fila de bayas, de repente, hay una brecha en el frente y el lado de la baya está justo en el hueco. Así que no estoy seguro de cómo mi gráfico se vería ya que incluso si me giro a la izquierda oa la derecha del comando checkberry no volveré valor TRUE. Así que tiene que haber una manera para que el pac man para pasar a la plaza brecha sin comer, pero ¿cómo va a decidir si se debe seguir para el que está delante o para otros?

¿Fue útil?

Solución

Si usted está diseñando un estado diagrama , tratar de calcular primero qué tipo de estados máquina de estados tendrá, en lugar de la numeración los Estados.

A continuación se muestra un ejemplo sencillo, el "pac man" tiene que ser a pie, comprobando y comer. Así que hay tres estados IS_WALKING, IS_CHECKING y IS_EATING. El diagrama para el desplazamiento hacia adelante y comer podría ser algo así como la figura de abajo. No estoy seguro de qué tipo de notación diagrama que estés usando aunque espero que va a aclarar algunas cosas para usted.

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

Las transiciones son más naturales y más fácil de entender una vez que tenga los nombres apropiados para los estados. Ejemplo de un buen nombre para el estado es uno que explica muy claramente lo que la máquina de estado está haciendo en un momento determinado.

Otros consejos

Si usted está buscando ayuda de Stackoverflow en este tipo de pregunta; obviamente necesita mirar lo que está haciendo. Su pregunta tiene que ser más específico. ¿Le tienen un problema con un problema de codificación específico, o es que no sabes por dónde empezar? Se esta destinado a ser un excersise trivial o proyecto completo soplado?

Trate de hacer un mapa mental de lo que quiere hacer y ver dónde se puede ir de allí con las habilidades que tiene actualmente. Volver una vez se encuentra con un problema real.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top