¿Cómo se programan las computadoras de ajedrez de modo que su nivel de dificultad sea configurable?

Esta es una pregunta bastante complicada. Mencionaré algunas formas posibles en que un programador puede establecer niveles para un programa de ajedrez de computadora. Espero que mi respuesta brinde alguna idea. Para una respuesta más técnica, es posible que desee agregar otra pregunta en busca de más detalles.

Las configuraciones que se pueden aplicar para perjudicar la fuerza de juego de una computadora incluyen:

  • Limitar la cantidad de tiempo que la computadora puede “pensar”.
  • Limitando la cantidad de movimientos que la computadora calculará con anticipación.
  • No permite que la computadora acceda a su libro de apertura y / o base de tabla.
  • Elegir un motor más débil.

Para un programa de ajedrez no profesional convencional, elegir una configuración de nivel más bajo probablemente usaría uno o algunos de los ajustes de configuración anteriores.

Hay otras desventajas en programas más avanzados. Chessmaster (creo que son hasta XII), tiene perfiles de jugador . Esto intenta dar una calificación aproximada Y un estilo de juego al nivel (reproductor de computadora) que seleccione.

Fritz (creo que tienen hasta 13 años) también tiene perfiles de jugadores de computadora (aunque anecdóticamente he oído que esta característica es superior en el programa Chessmaster). En Fritz, en la configuración de handicap, hay barras deslizantes para calificar la fuerza, y en muchas categorías detalladas que incluyen:

Ataque del rey
Colocación de piezas
Movilidad
Comercio de piezas
Variedad
Rango de error
Defensa del rey
Estructura de peón
Control central

Espero que lo anterior dé alguna idea. Esto se suma a las cosas básicas para ajustar la fuerza de juego, como los requisitos de hardware, la configuración del valor de la tabla hash, el acceso a la computación en la nube, qué motor (programa básicamente), etc.

Ver ¿Cuál es la lógica detrás de un juego de computadora de ajedrez ?:

La lógica subyacente de un juego de computadora de Ajedrez es en realidad bastante simple: cuando la computadora decide un movimiento, la computadora optimiza su movimiento al adivinar qué movimiento jugará el jugador humano en respuesta al movimiento de la computadora. Para adivinar el movimiento del jugador humano, la computadora adivina qué adivinará el jugador humano en el próximo movimiento de la computadora … y así sucesivamente.

En otras palabras, un juego de computadora de Ajedrez decide sus movimientos mirando hacia adelante, al igual que los humanos. El nivel (nivel Fácil, Medio, Difícil) está determinado por la cantidad de movimientos que el juego de ajedrez anticipa.

La única diferencia es que los humanos, tanto maestros como principiantes, miran alrededor de cuarenta a cincuenta posiciones antes de decidir qué movimiento jugar, mientras que las computadoras miran exhaustivamente millones de posiciones. Esto se debe al hecho de que los humanos usan habilidades de reconocimiento de patrones construidas a partir de la experiencia, mientras que un juego de computadora de Ajedrez realiza principalmente una búsqueda de fuerza bruta. Por esta razón, algunos dicen que los juegos de computadora de ajedrez no son inteligentes aunque venzan a los humanos.

Mirando hacia adelante en tres en raya:

Más información sobre cómo programar un bot de ajedrez de computadora: http: //chessprogramming.wikispac

Otros enlaces interesantes:

Una forma es reducir la profundidad de búsqueda anticipada o “pliegue”.

Vea el gráfico cerca del final de esta página: http://www.chessbase.com/columns