2009-11-20 18 views
11

Estoy tratando de probar y escribir una IA de ajedrez. ¿Hay algo que pueda usar en .NET Framework (o tal vez incluso en un programa de ajedrez escrito en Lua) que me permita escribir y probar una IA de ajedrez sin preocuparme por hacer realmente una partida de ajedrez?Programando un ajedrez AI

+4

Buena suerte! Escribir un buen motor de ajedrez es notoriamente difícil. –

Respuesta

19

No estoy seguro de lo que está tratando de hacer.

Si está buscando una GUI de ajedrez lista para usar, puede usar WinBoard. Está completamente desacoplado del (los) motor (es) de ajedrez subyacente (s), gracias a un protocolo de comunicación establecido. Su motor de ajedrez se convierte así en una aplicación de consola que intercambia comandos con la GUI.

Una alternativa más moderna siguiendo el mismo concepto es UCI. Una GUI que admite UCI es Arena.

+1

No estoy seguro de cómo no estoy seguro, aunque revisaré esos enlaces, ¡gracias! – RCIX

+4

Lo siento, no fue sarcástico. Simplemente prefiera el término "gui de ajedrez" en lugar de "juego de ajedrez", que es bastante ambiguo. Por cierto, http://www.gamedev.net/reference/programming/features/chess1/ es un muy buen tutorial sobre la construcción de un motor de ajedrez, en caso de que no lo sepas. – AndreaG

+1

+1 para los grandes consejos, y +1 para el enlace en tu comentario. –

2
  1. Utilice uno de los juegos de ajedrez de código abierto.
  2. Calcule la interfaz que decide el próximo movimiento de la computadora.
  3. Implemente su propia IA usando la misma interfaz y elimine la parte de la interfaz de usuario.
  4. Compara tu IA con la incluida.
  5. Diversión!
13

Escribo un blog de ajedrez de computadora que lo lleva a través de todos los pasos de escribir un motor de ajedrez en C# desde cero, incluye una sección de enlaces de ajedrez de computadora y un kit de partida de ajedrez.

http://www.chessbin.com

Adam Berent

+1

Buen trabajo. ¿Ha considerado convertir la clase BoardEvaluation en una interfaz (IBoardEvaluation)? Los desarrolladores podrían conectar sus propias clases de evaluación en. –

+0

No es una mala idea, gracias. –