Maquinas de Estado

9
FPS – Maquina de estado Estados: Atirar, Abaixar, Pular, Fugir, Correr, Andar, Recarregar, Parado. Grafo:

description

MAquinas de estado AI

Transcript of Maquinas de Estado

FPS – Maquina de estado

Estados: Atirar, Abaixar, Pular, Fugir, Correr, Andar, Recarregar, Parado.

Grafo:

switch(currentState){case Andar:

if(inimigo==false)currentState=Andar;

else if(inimigo== true)currentState= Correr;

break;case Correr:

if(inimigo==false)currentState=Andar;

else if (obstacle==true&&inimigos==false)currentState=Pular;

else if (tunel== true&&inimigos==false)currentState=Abaixar;

else if (inimigo == true&&HP == HPinimigo&&Balas!=0)currentState=Atirar;

break;

case Pular:if(obstacle ==false);

currentState=Andar;break;

case Abaixar:if(tunel ==false);

currentState=Andar;break;

case Atirar:if(inimigo ==false);

currentState=Andar;else if (inimigo ==true&&HP<HPInimigo)

currentState=Fugir;else if (inimigo ==true&& Balas == 0)

currentState=Recarregar;break;

case Recarregar:if(inimigo==false)

currentState=Andar;else if(inimigo== true&&Balas==0)

currentState= Fugir;break;case Fugir:

if(inimigo==false)currentState=Andar;

else if(inimigo== true&& HP>HPInimigo&&Balas!=0)currentState= Atirar;

break;

Jogador – Maquina de Estado

Estados: Movimentar, Marcar, Desarmar, Tocar, Chutar, Cabecear, Lançar, Driblar, Correr, dominar

Grafo:

switch(currentState){case Movimentar:

if(rivalposse==true)currentState=Desarmar;

else if(equipeposse== true)currentState= Marcar;

break;case Desarmar:

if(bolaaeria==true)currentState=cabecear;

else if (obstacle==true&&inimigos==false)currentState=Pular;

else if (tunel== true&&inimigos==false)currentState=Abaixar;

else if (inimigo == true&&HP == HPinimigo&&Balas!=0)currentState=Atirar;

break;

case Marcar:if(obstacle ==false);

currentState=Andar;break;

case Marca:if(tunel ==false);

currentState=Andar;break;

case Atirar:if(inimigo ==false);

currentState=Andar;else if (inimigo ==true&&HP<HPInimigo)

currentState=Fugir;else if (inimigo ==true&& Balas == 0)

currentState=Recarregar;break;

case Recarregar:if(inimigo==false)

currentState=Andar;else if(inimigo== true&&Balas==0)

currentState= Fugir;break;case Fugir:

if(inimigo==false)currentState=Andar;

else if(inimigo== true&& HP>HPInimigo&&Balas!=0)currentState= Atirar;

break;

Estratégia em tempo real – Maquina de estado

Estados: Parado, Movimentar, atacar, fugir, trabalhar, Restaurar, patrulhar.

Grafo:

switch(currentState){case Movimentar:

if(rivalposse==true)currentState=Desarmar;

else if(equipeposse== true)currentState= Marcar;

break;case Desarmar:

if(bolaaeria==true)currentState=cabecear;

else if (obstacle==true&&inimigos==false)currentState=Pular;

else if (tunel== true&&inimigos==false)currentState=Abaixar;

else if (inimigo == true&&HP == HPinimigo&&Balas!=0)currentState=Atirar;

break;

case Marcar:if(obstacle ==false);

currentState=Andar;break;

case Marca:if(tunel ==false);

currentState=Andar;break;

case Atirar:if(inimigo ==false);

currentState=Andar;else if (inimigo ==true&&HP<HPInimigo)

currentState=Fugir;else if (inimigo ==true&& Balas == 0)

currentState=Recarregar;break;

case Recarregar:if(inimigo==false)

currentState=Andar;else if(inimigo== true&&Balas==0)

currentState= Fugir;break;case Fugir:

if(inimigo==false)currentState=Andar;

else if(inimigo== true&& HP>HPInimigo&&Balas!=0)currentState= Atirar;

break;