Juego de ajedrez en Visual C++

Una forma de aprender y comprender algoritmos de programación es escribiendo 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.

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.

Han pasado muchos años desde que implementé éste 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í rehacer el proyecto pero esta vez documentado y explicándolo paso a paso.

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:

Ajedrez terminado

Tareas pendientes

El proyecto no esta completo, por lo que dejo una lista de tareas por hacer para que algún 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 peón al paso.
  • Detectar Jaque / Jaque Mate.
  • Visualizar las movidas realizadas según la notación oficial.
  • Permitir guardar/recuperar una partida.

Historial de cambios

  • 1.1 2017-dic-26 Mover el artículo a nueva plataforma
  • 1.1 2008-nov-04
    • Después de mucho tiempo el autor mudó el código fuente a Visual C++ 2003
    • Corrección del movimiento del Rey (gracias a marcossuhit)
  • 1.0 2004-mar-14
    • Lanzamiento de la primera versión del juego en latindevelopers.com

Creación del proyecto

Para no alargar más este asunto, lo primero que tenemos que hacer es crear el proyecto, el tipo de aplicación que necesitamos es “Documento único” conocido también como SDI (Simple Document Interface), asegurarse de que el check de la opción “Usar bibliotecas unicode” este deshabilitado por que no siempre están disponibles dichas bibliotecas en tiempo de ejecución (Ver Imagen 2).

Imagen 2: Elección del tipo de aplicación del proyecto.

En el siguiente paso del asistente podemos prescindir de algunas características que no utilizaremos en el proyecto, como: Controles ActiveX, Impresión y vista preliminar, Ayuda Contextual. Sólo consideraremos la opción “Manifiesto de controles comunes”, esta opción nos ayudará a sintonizar los controles comunes con el tema de Windows actual, de tal forma que no se vean extraños.

Imagen 3: Elección de las características avanzadas del proyecto.

El resto de opciones no necesita mayor explicación, y al final encontrarán una ventana como de la imagen 4, en este punto deben asegurarse de tener a CView como clase base de la clase CAjedrezView; esto significa la clase donde dibujaremos y realizaremos todas las operaciones que tienen que ver con ajedrez estarán en la clase CAjedrezView.

Imagen 4: Vista final del asistente de creación de proyectos del Visual C++

Luego de hacer clic en finalizar se habrá creado un proyecto con las 4 clases que se muestran en la figura 4, podemos compilar y ejecutar el proyecto y obtendremos un programa como el que se muestra en la imagen 5.

Imagen 5: Programa inicial ejecutándose

Descargas

File Description File size
zip Ajedrez Código fuente
85 KB
Una Respuesta a “Juego de ajedrez en Visual C++”
  1. Luis De Anda 8 Ene 2018
    Reply

    Hola amigo como estas, oye estoy interesado en una plataforma de juegos, ajedrez, damas inglesas, bagkammon y dominó, me gustaría platicar contigo haber si estas interesado, que tengas un excelente día

Dejar una Respuesta