Motor de ajedrez ?
2 participantes
Foro SiliconChess - Programas de Ajedrez y Actualidad :: GENERAL, Sobre Ajedrez :: AJEDREZ INFORMATICO (Máxima actualidad de los programas de ajedrez pc windows mac os linux).
Página 1 de 1.
Motor de ajedrez ?
Hola que tal, sabe alguien de un buen motor de ajedrez en javascript ?? o literatura para saber por donde empezar, existe algún estandard para esto ?
Quisiera empezar a leer algo al respecto, por ejemplo he visto distintas implementaciones y he visto que en todas existe un array que se llama mailbox que me imagino que es alguna tecnica para algo. En fin que soy un perdido en esto , y quería preguntar si existe algo que se DEBA saber en este ambito para empezar
Saludos
Quisiera empezar a leer algo al respecto, por ejemplo he visto distintas implementaciones y he visto que en todas existe un array que se llama mailbox que me imagino que es alguna tecnica para algo. En fin que soy un perdido en esto , y quería preguntar si existe algo que se DEBA saber en este ambito para empezar
Saludos
chinete- Mensajes : 4
Fecha de inscripción : 29/04/2012
Re: Motor de ajedrez ?
Hay algunos motores escritos en javascript, pero si buscas un motor en este lenguaje con una fuerza ELO grande no lo vas a conseguir, el lenguaje limitará mucho la potencia del motor, un programa escrito en este lenguaje sino me equivoco necesita de un navegador web para ejecutarse, algunos navegadores son más rápidos que otros. Pero a la vez este lenguaje permite realizar de forma más sencilla una interfaz gráfica de usuario, así que podrás encontrar no solo motores sino programas completos de ajedrez, al hacer uso de un navegador es complicado ponerle un protocolo para que enlace mediante xboard o uci.
Una página web que debes ver es la del mexicano Oscar Toledo, sus programas de ajedrez son los más pequeños del mundo en cuanto a código y tiene una versión del programa en javascript. Verás lo que puede hacer el tío en 2k de código. Desgraciadamente te resultará imposible comprender el código fuente del programa, el código está ofuscado para que ocupe lo menos posible y quizás para que no todo el mundo lo comprenda.
http://nanochess.110mb.com/chess4_es.html
No obstante en su página vas a encontrar muchos enlaces que han aportado cosas para su programa de ajedrez, además de enlaces para otros pequeños programas de ajedrez.
Posiblemente el más fuerte de los programas de ajedrez en javascript sea Garbochess (no conozco su fuerza), una versión javascript de un motor de unos 2700 puntos ELO.
http://forwardcoding.com/projects/ajaxchess/chess.html
Cuando se habla de mailbox, uno se refiere a la presentación del tablero y la generación de movimientos. Si tu consideras que un tablero de ajedrez está constituido por 8 filas y 8 columnas, siempre que vayas a generar movimientos tendrás que tener en cuenta si al moverse las piezas se están saliendo por alguna parte del tablero, por ejemplo un alfil situado en A1 se mueve en diagonal y podemos desplazarlo tantas casillas mientras no haya otra pieza en medio pero no podremos pasar de la casilla H8, es decir tenemos que estar comprobando que la pieza no se vaya más hayá de la columna 8 y de la fila 8. Para evitar todas esas comprobaciones continuamente, hay programadores que consideran que su tablero está formado por ejemplo de 12 filas y 12 columnas, situado el tablero 8 x 8 real en el interior de ese de 12x12, alrededor del tablero 8x8 se ponen todos los valores a uno correspondiente que indique que nos hemos salido del tablero, un 0 o -1, así si una pieza cae en una casilla externa y toma ese valor sabemos que la pieza se ha salido del tablero y que el movimiento no es legal, lógicamente solo se generan movimientos para piezas dentro del tablero 8x8. Esta técnica se utiliza por comodidad, para no estar comprobando continuamente y en algunos casos la técnica también consigue ganar algo de velocidad. Muchos motores que no son bitboard utilizan esta técnica, puedes verla en TSCP el cual utiliza un tablero de 12x10, en Fruit que utiliza 16x16, etc.
Una página web que debes ver es la del mexicano Oscar Toledo, sus programas de ajedrez son los más pequeños del mundo en cuanto a código y tiene una versión del programa en javascript. Verás lo que puede hacer el tío en 2k de código. Desgraciadamente te resultará imposible comprender el código fuente del programa, el código está ofuscado para que ocupe lo menos posible y quizás para que no todo el mundo lo comprenda.
http://nanochess.110mb.com/chess4_es.html
No obstante en su página vas a encontrar muchos enlaces que han aportado cosas para su programa de ajedrez, además de enlaces para otros pequeños programas de ajedrez.
Posiblemente el más fuerte de los programas de ajedrez en javascript sea Garbochess (no conozco su fuerza), una versión javascript de un motor de unos 2700 puntos ELO.
http://forwardcoding.com/projects/ajaxchess/chess.html
Cuando se habla de mailbox, uno se refiere a la presentación del tablero y la generación de movimientos. Si tu consideras que un tablero de ajedrez está constituido por 8 filas y 8 columnas, siempre que vayas a generar movimientos tendrás que tener en cuenta si al moverse las piezas se están saliendo por alguna parte del tablero, por ejemplo un alfil situado en A1 se mueve en diagonal y podemos desplazarlo tantas casillas mientras no haya otra pieza en medio pero no podremos pasar de la casilla H8, es decir tenemos que estar comprobando que la pieza no se vaya más hayá de la columna 8 y de la fila 8. Para evitar todas esas comprobaciones continuamente, hay programadores que consideran que su tablero está formado por ejemplo de 12 filas y 12 columnas, situado el tablero 8 x 8 real en el interior de ese de 12x12, alrededor del tablero 8x8 se ponen todos los valores a uno correspondiente que indique que nos hemos salido del tablero, un 0 o -1, así si una pieza cae en una casilla externa y toma ese valor sabemos que la pieza se ha salido del tablero y que el movimiento no es legal, lógicamente solo se generan movimientos para piezas dentro del tablero 8x8. Esta técnica se utiliza por comodidad, para no estar comprobando continuamente y en algunos casos la técnica también consigue ganar algo de velocidad. Muchos motores que no son bitboard utilizan esta técnica, puedes verla en TSCP el cual utiliza un tablero de 12x10, en Fruit que utiliza 16x16, etc.
pedrox- Mensajes : 81
Fecha de inscripción : 14/11/2011
Re: Motor de ajedrez ?
Que bien, gracias pedrox por la explicacion de lo del mailbox, el codigo del garbochess me parece muy bueno, ya lo habia visto hace unos meses y lo utilizo en una pequeña web que tengo.
Miraré la pagina del mexicano, parece interesante.
jeje, de hecho al terminar la frase anterior me puse a leer la página de oscar toledo, y la encuentro muy interesante, seguiré leyendo
Saludos
Miraré la pagina del mexicano, parece interesante.
jeje, de hecho al terminar la frase anterior me puse a leer la página de oscar toledo, y la encuentro muy interesante, seguiré leyendo
Saludos
chinete- Mensajes : 4
Fecha de inscripción : 29/04/2012
Temas similares
» Dentro de un motor de ajedrez
» Coiled - Motor nuevo.
» PIC Blitz: Microcontrolador y Motor Open Source
» Que son las Tablas hash y que relacion tienen con la fuerza de el motor?
» Deep Fritz 14 - 64 Bits con +100 Elo !! El motor no es de Frans Morsch [Foro Master Pro]
» Coiled - Motor nuevo.
» PIC Blitz: Microcontrolador y Motor Open Source
» Que son las Tablas hash y que relacion tienen con la fuerza de el motor?
» Deep Fritz 14 - 64 Bits con +100 Elo !! El motor no es de Frans Morsch [Foro Master Pro]
Foro SiliconChess - Programas de Ajedrez y Actualidad :: GENERAL, Sobre Ajedrez :: AJEDREZ INFORMATICO (Máxima actualidad de los programas de ajedrez pc windows mac os linux).
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.