Ajedrez por computadora

Páginas: 9 (2164 palabras) Publicado: 21 de junio de 2010
CUESTIONES DE IMPLEMENTACIÓN DE COMPUTADORAS DE AJEDREZ

INTRODUCCION:
Los desarrolladores de sistemas de computadoras de ajedrez tienen que decidir varias cuestiones de implementación fundamentales. Estas son:
* Representación del tablero: cómo se representa una posición simple en estructuras de datos.
* Técnicas de búsqueda: cómo identificar los posibles movimientos y seleccionarlos más prometedores para examinarlos posteriormente.
* Evaluación de hojas: cómo evaluar el valor de una posición del tablero, si no se hace una búsqueda posterior.
Los programadores también necesitan decidir si utilizarán bases de datos de finales u otras optimizaciones y a menudo implementar estándares de ajedrez comunes de facto.
A continuación analizaremos cada una de estas cuestiones deimplementación que son de gran importancia para el funcionamiento de los programas de ajedrez.
CONTENIDO:
REPRESENTACIÓN DEL TABLERO (AJEDREZ)
En el ajedrez por computadora los programadores deben de escoger una estructura de datos para representar las posiciones del ajedrez. Muchas estructuras de datos existen, llamadas colectivamente como representación del tablero. Los programas de ajedrezfrecuentemente usan más de una representación del tablero por razones de eficiencia
Requerimientos
Una completa descripción de una posición de ajedrez, debe de contener los siguientes elementos:
* El lugar de cada pieza en el tablero
* El jugador que tiene el turno de mover
* El estado de la regla de los 50 movimientos
* El estado del enroque de ambos jugadores
* Si esposible que una pieza pueda capturar al paso, y de cual pieza se trata.
La representación del tablero típicamente no incluye la regla de empate de los 3 movimientos repetidos. Para determinar esta regla, se necesita mantener un historial completo del juego, y por lo tanto, esto se almacena en una estructura de datos diferente.
Lista de piezas
Algunos de los primeros programas de computadoras de lahistoria debían trabajar con muy poca memoria, por lo tanto, alojar las 64 casillas del tablero en memoria representaba mucho. Entonces, estos programas almacenaban una lista de los lugares de cada una de las 16 piezas de ambos jugadores. En vez de buscar en cada una de las 64 casillas del tablero para encontrar las piezas, la lista de piezas daba acceso instantáneo a las piezas.
Basado enarreglos
Una de las formas más simples de representar un tablero es crear un arreglo de tamaño 8x8 (o de forma equivalente un arreglo unidimensional de 64 elementos). A cada elemento del arreglo correspondería la pieza que contiene la casilla, o en dado caso, si la casilla está vacía. Una posible codificación seria considerar 0 como vacío, positivo como pieza blanca, y negativo como pieza negra.Por ejemplo:

0 | Vacío |
1 | Peón blanco |
2 | Caballo blanco |
3 | Alfil blanco |
4 | Torre blanca |
5 | Dama blanca |
6 | Rey blanco |
| |
-1 | Peón negro |
-2 | Caballo negro |
-3 | Alfil negro |
-4 | Torre negra |
-5 | Dama negra |
-6 | Rey negro |

Un problema al utilizar esta forma es la generación de la lista de movimientos. Cada movimiento se tiene quecomprobar para asegurarse que está en el tablero, disminuyendo significativamente el proceso. Una solución sería usar un arreglo de 12x12, rellenando las casillas no propias del tablero con un valor fuera del rango. Durante la generación del movimiento, la operación para determinar la pieza que ocupa una determinada casilla siempre nos indicará que tal casilla está fuera del tablero.
Se puedeobtener una mejoría en la memoria con un arreglo de 10x12, el cual provee las mismas funcionalidades que uno de 12x12, sobreponiendo las casillas de los costados de todas las filas, las cuales son marcadas como "fuera del tablero". Algunos programas usan arreglos de 16x16 para mejorar la velocidad en la conversión de las filas y columnas y también para permitir trucos especiales de codificación.
Los...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • ajedrez en computadora
  • Ajedrez
  • Ajedrez
  • ajedrez
  • Ajedrez
  • Ajedrez
  • ajedrez
  • ajedrez

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS