Cpp/JuegoSudoku_FernandoMéndez/main.cpp

110 lines
2.9 KiB
C++

//Sudoku - Fernando Méndez Torrubiano
#include "juegoSudoku.h"
#include "ListaSudokus.h"
#include "ListaJugadores.h"
#include "UtilidadesWin.h"
#include <iomanip>
using namespace std;
//Funciones:
char menu();
void ejecutarMenu(tListaSudokus&, tListaJugadores&);
int main() {
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); //Detecta posibles fugas de memoria.
tListaSudokus lista;
tListaJugadores listaJug;
castellano();
if ((cargar(listaJug)) && (cargar(lista))) {
ejecutarMenu(lista, listaJug);
}
else {
cout << "Fin del programa." << endl;
}
if ((guardar(lista)) && (guardar(listaJug))) {
cout << "Guardado correctamente." << endl;
}
else {
cout << "Error al guardar el archivo." << endl;
}
liberar(listaJug);
pausa();
cout << "Good bye :3" << endl;
return 0;
}
void ejecutarMenu(tListaSudokus& lista, tListaJugadores& listaJug) {
tRegSudoku sudoku;
tRegJugador jugador;
char opc = '1';
int numSudo = 0, puntos = 0;
do {
clear();
opc = menu();
switch (opc){
case '1':
mostrar(lista);
do {
cout << "Introduce el número de sudoku al que deseas jugar ('0' para abortar): ";
cin >> numSudo;
} while (numSudo < 0 || numSudo > lista.contador);
if (numSudo != 0) {
iniciar(sudoku, lista.registro[numSudo - 1].nomTablero, lista.registro[numSudo - 1].puntos);
puntos = jugar(sudoku);
cout << "Juego finalizado. Puntos: " << puntos << endl;
if (puntos != 0) {
cout << endl << "Introduzca su ID de usuario: ";
cin >> jugador.id;
jugador.puntos = puntos;
actualizar(listaJug, jugador);
}
}
pausa();
break;
case '2': mostrar(listaJug); pausa(); break;
case '3': mostrarXRanking(listaJug); pausa(); break;
case '4':
mostrar(lista);
cout << "Introduzca el nombre del sudoku a insertar: ";
cin >> sudoku.nomTablero;
cout << "Introduzca la puntuación del sudoku: ";
cin >> sudoku.puntos;
insertar(lista, sudoku);
pausa();
break;
case '0':
break;
default:
break;
}
} while (opc != '0');
}
char menu() {
//Parámetros: no tiene.
//Devuelve: la opción del menú elegida por el usuario.
char opc = '1';
cout << "<" << setfill(char('-')) << setw(25) << "Menu" << setw(22) << ">" << "\n" << setfill(char(0));
cout << "1 - Jugar" << endl;
cout << "2 - Ver jugadores ordenados por identificador." << endl;
cout << "3 - Ver jugadores ordenados por puntos." << endl;
cout << "4 - Incorporar sudoku." << endl;
cout << "0 - Salir" << endl;
cout << "<" << setfill(char('-')) << setw(47) << ">" << "\n" << setfill(char(0));
cout << endl;
cout << "Seleccione una opcion del menu: ";
cin >> opc;
while (opc != '0' && opc != '1' && opc != '2' && opc != '3' && opc != '4') {
cout << "Seleccione una opción del menu (entre 0 y 4): ";
cin >> opc;
}
return opc;
}