martes, 19 de abril de 2016

Minimax

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