Proyecto: juego de euclides
Enviado por Alberto Williams • 13 de Noviembre de 2023 • Práctica o problema • 3.341 Palabras (14 Páginas) • 36 Visitas
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación
Universidad Nacional Experimental de Guayana
Vicerrectorado Académico
Proyecto de Carrera: Ingeniería Informática
Cátedra: Técnicas de Programación II
Sección: 01
PROYECTO: JUEGO DE EUCLIDES
Docente: Alumnos:
José Luis Salazar Cárdenas, Marco (C.I: 28.475.500)
Williams, Alberto (C.I: 28.611.716)
Puerto Ordaz, 23 de septiembre de 2022
MANUAL DEL PROGRAMADOR
- Requerimientos Técnicos:
- Versión del Dev-C++ 6.3 o superior ya instalada.
- Versión del C++ 201402 o superior ya instalada.
- Laptop, PC o teléfono móvil con al menos 13kb de almacenamiento disponible.
- Diagrama de Flujo General:
- Definición y descripción de principales variables y estructuras de datos usadas en el programa (Diccionario de Datos)
#include <iostream> == Librería estándar
#include <cstdlib> == Librería que habilitar los system “pauses” y “cls”.
#include <random> == Para habilitar los set_sequence, la distribución de enteros uniforme y el random device.
#include <utility> == Habilita la función std::swap para el cambio de nombres dentro del juego.
#include <limits> == Mantener los límites max y min para los estándares definidos de la tabla.
#include <string> == Librería para mejorar el manejo de cadenas en el programa.
std::seed_seq ss { rd(), rd(), rd(), rd(), rd(), rd(), rd(), rd() }; == Dadas 8 semillas o una setsequence de 8 bytes, para tener una randomización más alta, que se pasa al std::mt19937
std::uniform_int_distribution<> RandomN_IO { __$min$, __$max$ }; == Muestra los máximos y mínimos de la función random
const int sizeTabla{8}; Mantiene el valor estático de la tabla utilizada para la generación de tablas.
const int matrizSize{ sizeTabla * 4 }; Mismo funcionamiento que la función previa.
int itA{1}, itB{1}; == Iteradores que iteran dentro de los índices de las matrices A y B para guardar los valores tanto de las casillas blancas como de las azules.
static bool cargarJuego{ false } == Hace que el juego aún no se cargue.
ReinicioInput{ false }; == Permite saber cuándo terminó el juego sin cerrar el programa.
std::string Jugador1{}, Jugador2{}; == Nombres de los jugadores, como variable global.
const int longitudNombres{15} == Mantiene el tamaño ideal de la longitud de los nombres.
int Temporal[matrizSize * 2]{}, iTemp {1}; == Nos permite guardar en una función todos los valores mayores que 0 y menores que 100, para validar los valores de las restas de cualquier número del juego.
A[timeA] y B[timeB] == Iteradores de las matrices A y B para las casillas blancas y azules. Una vez agarradas las azules se agarran las blancas. Si tiene el valor -1234 genera la X como un error de número en la casilla.
A[i] = 0; B[i] = 0; == Reinicio de las variables al momento de cargar el juego.
Temporal[0] = A[0];
Temporal[1] = B[0]; == Principales valores randomizados de la función mostradas en el tablero.
counter{0}; == Se va contando con los valores corregidos, y es una variable temporal de control para verificar si cada número ingresado es positivo y único dentro de la tabla, y escalar a otro espacio.
std::getline(cin >> std::ws, Jugador1); == Funcion utilizada para no sobrecargar el buffer de la función, para todo tipo de variable.
int point1{matrizSize}, point2{matrizSize}; == Contador de puntaje de cada matriz, para luego compararlos al final del código y determinar un ganador o un empate, quitando “un corazón” a cada jugador de vida.
- Definición y Descripción de principales funciones del programa (Diccionario de Funciones)
- Función ErrorHandling:
void Error_Handling()
{
if(std::cin.fail())
{
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), ‘\n’);
}
}
Función cuya finalidad radica en que si el usuario al ingresar la entrada en el Juego de Euclides, si escribe un dato de tipo no numérico o realiza un salto de línea, evita que el juego se reviente o se crashee y permita la entrada de un tipo numérico.
- Función RandomN:
int RandomN(int __$min$, int __$max$) {
std::random_device rd;
std::seed_seq ss { rd(), rd(), rd(), rd(), rd(), rd(), rd(), rd() };
std::mt19937 mt { ss };
std::uniform_int_distribution<> RandomN_IO { __$min$, __$max$ };
return RandomN_IO(mt);
}
Como su nombre lo indica, es una función para seleccionar de forma aleatoria los primeros 2 números enteros positivos que aparecerán en el tablero del juego al principio del mismo.
- Función MostrarNombres:
void MostrarNombres()
{
if((RandomN(1, 9) % 3 == 0) && nombresCambio)
...