Taller
>> Taller >> Curso de Inteligencia Artificial by Slàinte >> I.A. Condicionada.


Compliquemos un poco más el asunto. Ahora el cambio de estado puede darse en cualquier momento de la ejecución. Por norma general la aproximación al problema es la misma que la anterior añadiendo una función que evalua en cada ciclo en que estado estamos. Esta función puede ser muy similar al cálculo que realiza una IA calculada (ver entrega 2):

// Tenemos nuestro bucle de estados que se evalua cada ciclo

LOOP
  SWITCH (estado)
    CASE 1:
      // Acciones estado 1... ;
    END
    CASE 2:
      // Acciones estado 2... ;
    END
    // ASÍ HASTA TERMINAR LOS ESTADOS...
  END
  evalua_estado() ;
  FRAME
END


La función evalua_estado() determina el estado en que estamos para la proxima vuelta atendeindo a la situación en que nos encontramos, por ejemplo mirando el nivel de vida del proceso, su posición, etc. Este es quizás el caso típico que se daria en un juego de lucha o en un juego tipo SIM en que cada construcción evalua su entorno para saber si ha de evoluciar a un estado superior, perder nivel porque el entorno está degradado, si pasa a estar en alerta porque se produce un incendio, etc.

Este sistema no está reñido con la consecución de objetivos para el cambio de estado, sino que la determinación de esos logros se realiza junto al resto de evaluaciones.

Recomendación

Si quieres dar mayor grado de realismo y una mayor complejidad a la IA en cada rama del switch prepara varias posibles vias de acción controladas por algun factor externo o aleatorio que darán al proceso una gama más variada y menos repetitividad.



[ INTRODUCCIÓN ]    [ ENTREGA 3 ]    [ SCRIPT FIJO ]   [ SCRIPT DINÁMICO ]