Pergunta

Considere um jogo semelhante ao pac-mac que queremos representá-lo com um gráfico FSA. Temos um labirinto (tabela) e há bagas para ela, em posições aleatórias. O objetivo é comer todas as frutas no labirinto. Os comandos que temos de considerar para o controle são os seguintes:
GoAhead, esquerda, direita, CHECKBERRY (que verifica se existe uma baga na frente do homem pac), EAT e OFF-labirinto.
Precisamos de um máximo de 10 etapas ... E tenha em mente que não podemos ter mais de um lacunas em uma fileira. Obrigado

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

ok então. Eu criei o gráfico, mas não consigo encontrar uma maneira de lacunas viaduto. Por exemplo: No labirinto depois de uma certa linha de bagas, de repente, há uma lacuna na frente e no próximo baga está à direita da lacuna. Então, eu não sei como meu gráfico será parecido como até mesmo se eu virar à esquerda ou à direita do comando checkberry não retornará valor TRUE. Então tem que haver uma maneira para o homem pac para ir para a praça lacuna sem comer, mas como é que vai decidir se mover para a frente ou para os outros?

Foi útil?

Solução

Se você está projetando um estado diagrama , tente primeiro descobrir que tipo de estados que o seu estado da máquina terá, em vez de numeração os Estados.

Aqui está um exemplo simples, o seu "pac man" deve ser curta, verificação e comer. Assim, existem três estados IS_WALKING, IS_CHECKING e IS_EATING. O diagrama para atravessar para a frente e comer poderia ser algo como a figura abaixo. Eu não tenho certeza que tipo de diagrama de notação que você está usando, embora eu espero que ele vai esclarecer algumas coisas para você.

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

As transições são mais natural e mais fácil descobrir uma vez que você tem nomes apropriados para os estados. Exemplo de um nome bom para o estado é aquele que enuncia claramente que a máquina do Estado está fazendo em um momento particular.

Outras dicas

Se você está procurando ajuda de Stackoverflow sobre este tipo de questão; obviamente você precisa olhar para o que você está fazendo. Sua pergunta precisa ser mais específico. Você está tendo um problema com uma codificação problema específico, ou você não sabe por onde começar? É este pretende ser um excersise trivial ou projeto soprado cheio?

Tente fazer um mapa mental do que você quer fazer e ver onde você pode ir de lá com as habilidades que você tem atualmente. Volte uma vez que você topar com um problema real.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top