
Usted ha votado: Pobre
Como Implementar un Juego de Ajedrez en Visual C++
Enviado por Ivan Cachicatari
Introducción
A mi entender, la mejor forma de aprender y comprender algoritmos de programación es programando juegos. Los juegos suelen presentar situaciones que ayudan a despertar la creatividad y por la complejidad incentivan el uso de algoritmos complejos casi como jugando.
Hace algunos años implementé un juego de ajedrez que publique sin documentación, miles de usuarios descargaron el código fuente del proyecto pero muchos me escribieron recordándome que no había documentación para entender el proyecto. Es por eso que decidí re-hacer el proyecto pero esta vez documentado y explicándolo paso a paso.
Este tutorial le ayudará a usted a implementar un juego de ajedrez, para ello he utilizado Microsoft Visual C++ 2005, sin embargo usted puede seguir los pasos con otras versiones de Visual C++ incluso otros entornos de programación.
Objetivo
El objetivo, obviamente, es implementar un juego de ajedrez escrito en Visual C++ con los siguientes requisitos:
- Uso de la interfaz gráfica con manejo del Mouse.
- Controlar validar movidas de los jugadores.
- Permitir dos jugadores.
- Detectar jaque, jaque mate, enroques, y otras movidas.
Así se verá el juego cuando se termine de codificar:

Imagen 1: Juego de Ajedrez en Visual C++ Terminado
Contenido del tutorial
Tareas por hacer
El proyecto no esta completo, por lo que dejo una lista de tareas por hacer para que algun aventurero se anime a completarlas. Si alguien ha completado alguna solo tiene que escribirme a mi correo e inmediatamente subiré su actualización.
- Permitir enroque y peon al paso.
- Detectar Jaque / Jaque Mate.
- Visualizar las movidas realizadas segun la notación oficial.
- Permitir guardar/recuperar una partida.
Historial de cambios
v1.0
2004-mar-14 - Lanzamiento de la primera version del juego en latindevelopers.com
v1.0.1
2008-jul-27 - Despues de mucho tiempo el autor mudó el codigo fuente a Visual C++ 2003
2008-nov-04 - Correccion del movimiento del Rey (gracias a marcossuhit)
 |
|
 |
|
DescargasAcerca del Author
Nombre de usuario: latindeveloper
Blog/URL:
Fecha de envío: 2004-03-14
Ultima Actualización:
Visualizaciones: 20337
|
|
Comentarios y Consultas
- Re: Juego de Ajedrez ...
Dónde puedo encontrar la versión mejorada del programa, la de visual C++ 2003?
Fuí ajedrecista y ahora soy ing. de sistemas y quiero hacer el programa con un método propio. Para terminar de aprender Visual C++ y pasarlo a java luego.
Me puedes ayudar con el código fuente.
Gracias
- Re: Juego de Ajedrez ...
- Re: Juego de Ajedrez ...
Hola marcos,
Gracias por hacer las observaciones que ayudan a mejorar el juego, respondo a tus preguntas:
1ª.- El peon puede comer hacia adelante en el juego real esto NO esta permitido. He revisado el codigo del peon y creo que esta controlado, pero quisiera saber en que condiciones ha ocurrido lo que tu dices. 2ª.- El Rey puede avanzar nada mas que en horizontal o vertical, pero no en las diagonales, porque?. En la funcion CAjedrezView::MoverReyHacia hay la siguiente condicion: - Código: Seleccionar todo
if((abs(difx) == 1) && (abs(dify) == 1) ) { ... }
hay que cambiar esa condicion por esto: - Código: Seleccionar todo
if((abs(difx) == 1) || (abs(dify) == 1) ) { ... }
Respecto al resto, estoy tratando de sacarle tiempo al tiempo para poder terminar este programa. Saludos.
- Re: Juego de Ajedrez ...
Hola que tal, soy estudiante Universitario de Ingenieria de Sistemas en la Universidad de Tandil, Provincia de Buenos Aires. La verdad que tu codigo esta muy bueno, pero tiene un par de errorsitos que los he estado mejorando, espero que NO te moleste que te este advirtiendo sobre estos, paso a detallarlos: 1ª.- El peon puede comer hacia adelante en el juego real esto NO esta permitido. 2ª.- El Rey puede avanzar nada mas que en horizontal o vertical, pero no en las diagonales, porque?. Como vos bien ACLARASTE falta detectar jaque, jaque mate, peon al paso, guardar partidas, enroques y unas cositas mas, en este momento estoy trabajando en eso, la verdad que el jaque mate me esta matando, ya que lo quiero hacer lo menos costoso posible, en cuanto lo saque subo el codigo, para extender un poco lo echo por vos. Algo mas que le he agregado es que muestre coloreando el tablero, todos los posibles movimientos de cada ficha seleccionada y me gustaria como para ponerle una frutillita al postre, jugar contra la maquina poniendole grados de dificultad.
- Juego de Ajedrez ...
Articulo: Juego de Ajedrez en Visual C++ Ubicación: http://www.latindevelopers.com/articulos/visualc/chess.php Author: latindeveloper Descripción: Este programa es un Jurado de Ajedréz, es decir controla movidas y turnos. El proyecto esta desarrollado en Visual C++. Enviado: 14 Marzo 2004 Ultima Actualizacion: -
Usted puede valorar la publicacion de este artículo, opinar al respecto, y absolver sus dudas.
+ Agregar Comentario/Consulta
-> Ver todos los comentarios
|
|
 |
|
 |