Quiero programar un juego de backgammon usando JAVA, pero no sé cómo programarlo y no puedo codificarlo en una computadora. Solicite orientación a un experto.
Tenga en cuenta que el siguiente algoritmo central tiene variables currentBoardSituation y CountList. La primera representa la última situación del tablero de ajedrez de la máquina actual y la segunda representa la colección de mejores tableros que el primer nivel. los nodos secundarios pueden elegir. El algoritmo principal es el siguiente:
void MainDealFunction()
{
value=-MAXINT //asignar valor al nodo raíz inicial
CalSeveralGoodPlace(currentBoardSituation, CountList);
// Esta función compara la situación actual del tablero para obtener varios tableros mejores que se pueden considerar. Puede elegir el que tiene una puntuación más alta en función de la puntuación real. Situación de puntuación. Varios tableros de ajedrez, es decir, el algoritmo codicioso se utiliza en la selección de nodos de primer nivel. El propósito de utilizar el algoritmo codicioso en la selección de nodos de primer nivel es encontrar directamente los nodos de primer nivel con. puntuaciones relativamente altas, para mejorar la velocidad de búsqueda y evitar el desbordamiento de la pila.
pos=CountList.GetHeadPosition();
CBoardSituation* pBoard;
for(i=0;ivalue=Buscar(pBoard, min, valor, 0 );
Valor =Select(value, pBoard-gt; value, max
//Toma el valor mayor y pBoard-gt y asígnalo a la raíz; node
}
for(i=0;ivalue)
//encuentra el tablero que obtuvo la puntuación más alta
{
currentBoardSituation=pBoard;
PlayerMode=min; //el lado que juega actualmente cambió a humano
Break
}
}
p>
}
}
} más
{
si ( goal(board)lt; gt; 0)
// Aquí target(board)lt;gt;0 significa que se puede determinar el ganador
return goal(board);
else
return evlation(board);
}
}
Tenga en cuenta que el objetivo ( tablero) aquí se utiliza para determinar si el tablero de ajedrez actual ha sido Prepárese para decidir el ganador, y evlation(board) califica el tablero actual desde la perspectiva de la máquina
A continuación se muestra una introducción a la función Seleccionar, cuyo objetivo principal es determinar la situación del modo jugador (es decir, la máquina o el usuario) devuelve el valor esperado del nodo.
doble selección(doble a, doble b, modo int)
{
if(agt; modo b==max)?(alt; modo b ==min)
devolver a
else
devolver b
}