Trabajo final de fin de curso de Programación I de la carrera de Ingeniería de Software de la UPC.
- ABET – EAC - Student Outcome 1: La capacidad de identificar, formular y resolver problemas complejos de ingeniería mediante la aplicación de los principios de la ingeniería, la ciencia y las matemáticas.
- ABET – CAC - Student Outcome 1: Analizar un problema de computación complejo y aplicar principios de computación y otras disciplinas relevantes para identificar soluciones.
Hay dos opciones para compilar este proyecto:
- Microsoft Visual C++ 2019 - Standalone Build Tools
- Microsoft Visual C++ 2019 - Community/Professional/Enterprise
El proyecto está 100% probado que funciona utilizando los Build Tools de forma independiente del editor Visual Studio, pero debería funcionar de todas maneras con el último.
Importante: Es necesario tener instalado en cualquiera de los dos casos el soporte para código de C++/CLI.
Se pueden utilizar los archivos binarios precompilados, disponibles en GitHub como releases.
Para compilar el proyecto, se puede usar Makefile.bat, este se encargará de buscar las herramientas de compilación de Visual Studio 2019 y realizará las verificaciones necesarias a los archivos del proyecto para iniciar la compilación.
El resultado de la compilación siempre estará dentro de la carpeta build/
.
Los siguientes comandos deberían compilar el proyecto y guardarlo en la carpeta build/
. Esto siempre y cuando se ejecute desde una terminal con las herramientas de Visual Studio incluidas:
cd C:\ruta\del\proyecto\
mkdir build && mkdir build\obj
cl.exe /clr /Fe: C:\ruta\del\proyecto\build\main.exe /Fo: C:\ruta\del\proyecto\build\obj\ /I C:\ruta\del\proyecto\includes\ C:\ruta\del\proyecto\main.cpp
Para abrir una terminal con las herramientas de Visual Studio ya incluidas, se puede usar los atajos del menú inicio que se crean al instalar Visual Studio (Standalone Build Tools o Community/Professional/Enterprise). Se pueden encontrar buscando "Developer" el menú de Windows:
- C++/CLI (
/clr
) - Name EXE File (
/Fe: ${workspaceFolder}/build/${fileBasenameNoExtension}.exe
) - Object File Name (
/Fo: ${workspaceFolder}/build/obj/
) - Include Paths (
/I ${workspaceFolder}/includes/
) - File Path (
${workspaceFolder}/main.cpp
)
- main.cpp: Contiene la lógica inicial del programa.
- includes/menu.h: Contiene la lógica para los diferentes menúes del programa.
- includes/game.h: Contiene la lógica para el juego.
- includes/utils.h: Contiene funciones utilizadas en diversas ocasiones en todo el programa.
- includes/dice.h: Contiene las cadenas de texto necesarias para imprimir las 6 versiones del dado.
- includes/movements.h: Contiene los mapas de colores y los mapas de movimiento que las fichas deben seguir.
- Makefile.bat: Inicia la compilación del proyecto después de realizar verificaciones iniciales.
- GetHashes.bat: Obtiene los hashes SHA1 de cada archivo esencial del proyecto utilizando la herramienta de Windows CertUtil.
- .vscode/c_cpp_properties.json: Contiene la configuración utilizada para la extensión C/C++ de Visual Studio Code.
- .vscode/tasks.json: Contiene la configuración de las tareas utilizadas para la compilación del proyecto en Visual Studio Code.
- .vscode/launch.json: Contiene la configuración de las tareas utilizadas para el debug del proyecto en Visual Studio Code.
Este proyecto está bajo la Licencia GNU General Public License v3.0 - mira el archivo LICENSE para más detalles.