domingo, 13 de noviembre de 2011

Pseudocodigo simple para el algoritmo minimax

El algoritmo MINIMAX es el siguiente:
MINIMAX( posición, profundidad, jugador)
comienzo
    Si SUFICIENTE (posición, profundidad) entonces
      resultado.VALOR := ESTATICA (posición, jugador); resultado.CAMINO := NULO; return resultado;
    sino
      Sucesores := GENMOV (posición, jugador); Si EstaVacia (Sucesores) entonces
        resultado.VALOR := ESTATICA (posición, jugador); resultado.CAMINO := NULO; return resultado;
      sino
        resultadoMejor.VALOR := MININT; por cada sucesor de Sucesores
          resultadoSucesor := MINIMAX (sucesor, profundidad+1, CONTRARIO (jugador)); Si resultadoMejor.VALOR < - resultadoSucesor.VALOR entonces
            resultadoMejor.VALOR := - resultadoSucesor.VALOR; resultadoMejor.CAMINO := sucesor + resultadoSucesor.CAMINO;
          fin si;
        fin por; return resultadoMejor;
      fin sino;
    fin sino;
fin MINIMAX;

No hay comentarios:

Publicar un comentario