En los primeros programas de ajedrez el tablero se representaba usando un arreglo, luego se comenzó a usar una técnica que revolucionó el mundo del ajedrez, los bitboards.
Un bitboard es una representación del tablero usando un entero de 8 bytes, dado que cada byte tiene 8 bits se pueden representar los 64 casilleros del tablero con un bitboard.
La ventaja de esta representación es que los cálculos son mucho menos costosos en memoria y CPU porque un bitboard pesa mucho menos que un arreglo de 64 carácteres y se usan operaciones a nivel de bit como el AND,OR,XOR y shift para muchos de los cálculos.
Verificar si un casillero del tablero se encuentra ocupado por una pieza usando bitboards:
typedef uint64_t bitboard;
...
/* square number 0-63 (a1-h8) */
int isOccuped(bitboard board, int square) {
if( board & (1<< square) ) {
return 1;
}
return 0;
}
Para revisar si una casilla del tablero esta ocupada usando un arreglo tendriamos que recorrer el arreglo e ir revisando casilla por casilla, lo cual resulta más costoso y menos elegante.
6 comments:
SEO
1) Optimizar el titulo para los motores de búsqueda, en ves de "Programación y ajedrez" poner "Programar un motor de ajedrez, ¿Que es un bitboard?"
2) Recalcar en negrita las palabras claves que le sirvan a los motores de búsqueda, como podrían ser: "motor de ajedrez", "C"(si es posible "lenguaje c"), "bitboard", "Verificar si un casillero del tablero se encuentra ocupado por una pieza usando bitboards", arreglo.
3)Ordenar el contenido de forma rectangular.
Así No:
dsffdfddsd
fsdfsfsd
fsdfsfdsd
fsfsdf
Así Si:
sss df fs
sd sdf ds
sdfs sdf
fdds sd d
Mas información: http://programacion-x.freevar.com/programacion-x/index.php/component/content/article/42-joomla/70-joomla-trucos-y-tips-para-mejorar-el-posicionamiento-en-los-motores-de-busqueda-seo.html
No quedo rectangular xD
saludos notosil !!
jajajjajaja gracias por los consejos, veré si hago caso de alguno, depende de como se vea.
notosil ?
sí
Post a Comment