//============================================================================
// Name : simon3.cpp
// Author : Leandro Cadaval, Tomás Jiménez, Ricardo José Meza
// Version :
// Copyright :
// Description : Práctica Final de FP, consistente en la implementación del juego del SIMON.
//============================================================================
#include <iostream>
#include <conio2.h>
#include <fstream.h>
#include <windows.h>
using namespace std;
#define N 10
#define maxcar 20
#define M 30
typedef int aleatorios_juego[N];
typedef int fibonacci_puntos[N];
typedef char vector_nick[maxcar];
typedef struct {
int codigo;
vector_nick nombre;
int partidas;
int puntuacion_ultima;
int puntuacion_max;
int veces_final;
int edad;
} datos_jugador;
typedef struct {
aleatorios_juego al;
fibonacci_puntos punt_fib;
} numerosypuntos;
//Prototipo modulos
void presentacion();
int menu();
numerosypuntos inicializar();
void mostrar_aleatorios_prueba(numerosypuntos & n);
void asteriscos();
datos_jugador introducir_datos();
void visualizar_datos(datos_jugador j);
void introducir_datos_fichero(datos_jugador j, ofstream & escritura_jugadores);
bool existencia_jugador_fichero(datos_jugador & j, ifstream & lectura_jugadores,
int codigoint);
void carga_colores_sonidos_numero0(numerosypuntos n);
void jugar(datos_jugador & j, numerosypuntos n, bool controlador);
void carga_colores_sonidos_numero1(numerosypuntos n);
void carga_colores_sonidos_numero2(numerosypuntos n);
void carga_colores_sonidos_numero3(numerosypuntos n);
void carga_colores_sonidos_numero4(numerosypuntos n);
void carga_colores_sonidos_numero5(numerosypuntos n);
void carga_colores_sonidos_numero6(numerosypuntos n);
void carga_colores_sonidos_numero7(numerosypuntos n);
void carga_colores_sonidos_numero8(numerosypuntos n);
void carga_colores_sonidos_numero9(numerosypuntos n);
void carga_colores_sonidos_numero10(numerosypuntos n);
bool ronda_1(numerosypuntos n, datos_jugador & j);
bool ronda_2(numerosypuntos n, datos_jugador & j);
bool ronda_3(numerosypuntos n, datos_jugador & j);
bool ronda_4(numerosypuntos n, datos_jugador & j);
bool ronda_5(numerosypuntos n, datos_jugador & j);
bool ronda_6(numerosypuntos n, datos_jugador & j);
bool ronda_7(numerosypuntos n, datos_jugador & j);
bool ronda_8(numerosypuntos n, datos_jugador & j);
bool ronda_9(numerosypuntos n, datos_jugador & j);
bool ronda_10(numerosypuntos n, datos_jugador & j);
void instrucciones_juego(numerosypuntos n);
void actualizar_fichero(ofstream & escritura_jugadores, datos_jugador j);
int calculo_fibonacci(int n);
void introducir_datosjugador_menor_enfichero(ofstream & esciturajugadormenor, datos_jugador j);
int main() {
datos_jugador jug;
numerosypuntos nu;
int opc;
ifstream lectura_jugadores;
ofstream escritura_jugadores;
ofstream esciturajugadormenor;
bool cont;
int cod;
presentacion();
opc = menu();
while (opc != 11) {
switch (opc) {
case 1:
cout
<< "Inicializamos el conjunto de aleatorios de enteros y puntos para jugar."
<< endl;
nu = inicializar();
asteriscos();
break;
case 2:
cout << "Introduce tus datos :" << endl;
jug = introducir_datos();
asteriscos();
break;
case 3:
cout << "Comprobaremos los aleatorios generados." << endl;
mostrar_aleatorios_prueba(nu);
asteriscos();
break;
case 4:
cout << "Estos son los datos del jugador :" << endl;
asteriscos();
visualizar_datos(jug);
asteriscos();
break;
case 5:
cout
<< "Introducimos los datos del jugador en el fichero " "simon.txt" ""
<< endl;
introducir_datos_fichero(jug, escritura_jugadores);
cout
<< "Los datos han sido introducidos al fichero satisfactoriamente ."
<< endl;
break;
case 6:
cout
<< "Comprobamos si el jugador introducido está disponible en el fichero :"
<< endl;
cout << "Introduce codigo del jugador para localizar :" << endl;
cin >> cod;
existencia_jugador_fichero(jug, lectura_jugadores, cod);
asteriscos();
break;
case 7:
instrucciones_juego(nu);
asteriscos();
break;
case 8:
textcolor(LIGHTBLUE);
cout << "¡¡BIENVENIDO/A AL JUEGO DEL SIMON: " << jug.nombre
<< endl;
Sleep(2000);
jugar(jug, nu, cont);
break;
case 9:
actualizar_fichero(escritura_jugadores, jug);
asteriscos();
break;
case 10:
introducir_datosjugador_menor_enfichero(esciturajugadormenor,jug);
cout<<"Los datos del jugador menor se han guaradado excelentemente en el fichero"<<endl;
break;
}
opc = menu();
}
cout << "Eso, ¡sin viciarse que eso es malo!" << endl;
system("PAUSE");
return 0;
}
void presentacion() {
textcolor(YELLOW);
cout
<< "***********************************************************************************************"
<< endl;
cout
<< "****************************** BIENVENIDO/A LA PRACTICA FINAL DE FP ********************"
<< endl;
cout
<< "****************************** CURSO 2015/16 ********************"
<< endl;
cout
<< "****************************** JUEGO 'SUPER SIMON' ********************"
<< endl;
cout
<< "****************************** REALIZADO POR: LEANDRO & TOMAS & RICARDO ********************"
<< endl;
cout
<< "***********************************************************************************************"
<< endl;
Beep(330, 100);
Sleep(100);
Beep(330, 100);
Sleep(300);
Beep(330, 100);
Sleep(300);
Beep(262, 100);
Sleep(100);
Beep(330, 100);
Sleep(300);
Beep(392, 100);
Sleep(700);
Beep(196, 100);
Sleep(700);
}
int menu() {
textcolor(WHITE);
int opcion;
cout << "1.INICIALIZAR NUMEROS ALEATORIOS Y PUNTOS." << endl;
cout << "2.INICIALIZAR JUGADOR NUEVO." << endl;
cout
<< "3.VISUALIZAR NUMEROS ALEATORIOS(SOLO PARA PRUEBAS): BAJO CONTRASEÑA."
<< endl;
cout << "4.VISUALIZAR LOS DATOS DEL JUGADOR." << endl;
cout << "5.INTRODUCIR JUGADOR EN EL FICHERO." << endl;
cout << "6.COMPROBACION DE LA EXISTENCIA DEL JUGADOR EN EL FICHERO."
<< endl;
cout << "7.INSTRUCCIONES DEL JUEGO (MÓDULO EXTRA AÑADIDO POR NOSOTROS)"
<< endl;
cout << "8.JUGAR AL JUEGO." << endl;
cout << "9.ACTUALIZAR DATOS DEL FICHERO DE JUGADORES." << endl;
cout<<"10.ALMACENAR DATOS JUGADOR MENOR DE EDAD EN FICHERO"<<endl;
cout << "11.SALIR DEL PROGRAMA." << endl;
cout << "Introduce opcion de 1 a 10 :" << endl;
cin >> opcion;
while (opcion < 1 || opcion > 11) {
cout
<< "Error, opciOn introducida no es valida. Introduce una opcion de 1 a 9 :"
<< endl;
cin >> opcion;
}
return opcion;
}
numerosypuntos inicializar() {
numerosypuntos n;
srand(time(NULL));
for (int i = 0; i < N; i++) {
n.al[i] = rand() %11;
}
for (int i = 0; i < N; i++) {
n.punt_fib[i] = calculo_fibonacci(i);
}
cout << "Aleatorios y puntos inicializados satisfactoriamente:)" << endl;
return n;
}
void mostrar_aleatorios_prueba(numerosypuntos & n) {
//Contraseña: 12345
int contrasena;
cout
<< "Mostraremos el vector con todos los aleatorios, pero antes, INTRODUZCA SU CONTRASENIA :"
<< endl;
cin >> contrasena;
while (contrasena != 12345) {
cout
<< "Error, contraseña incorrecta. Introduzca de nuevo la contraseña :"
<< endl;
cin >> contrasena;
}
cout << "Aqui estan los aleatorios generados en el vector :" << endl;
for (int i = 0; i < N; i++) {
cout << "El numero : " << i << " es :" << n.al[i] << endl;
}
for (int i = 0; i < N; i++) {
cout << "En la posicion fibonacci : " << i
<< " se encuentrar los puntos: " << n.punt_fib[i] << endl;
}
}
void asteriscos() {
cout
<< "**************************************************************************************"
<< endl;
}
int calculo_fibonacci(int n) {
int fib;
if ((n == 0) || (n == 1)) {
fib = 1;
} else {
fib = (calculo_fibonacci(n - 2) + calculo_fibonacci(n - 1));
}
return fib;
}
datos_jugador introducir_datos() {
datos_jugador j;
cout << "Introduce el codigo del jugador :" << endl;
cin >> j.codigo;
cout << "Introduce el nombre del jugador :" << endl;
cin >> j.nombre;
cout<<"Introduce tu edad:"<<endl;
cin>>j.edad;
if(j.edad<18){
cout<<"Solo para mayores de 18 anio"<<endl;
cout<<"Tus datos seran guardados en un fichero llamado jugadormenot.txt,posteriormente"<<endl;
}
j.partidas = 0;
j.puntuacion_ultima = 0;
j.puntuacion_max = 0;
j.veces_final = 0;
return j;
}
void visualizar_datos(datos_jugador j) {
cout << "El codigo del jugador es : " << j.codigo << endl;
cout << "EL nombre del jugador es : " << j.nombre << endl;
cout << "El jugador : " << j.nombre << " lleva :" << j.partidas
<< " jugadas ." << endl;
cout << "El jugador : " << j.nombre << " consiguo un total de : "
<< j.puntuacion_ultima << " puntos la ultima vez que jugo. "
<< endl;
cout << "El jugador : " << j.nombre
<< " ha conseguido una puntuacion maxima de : "
<< j.puntuacion_max << " puntos." << endl;
cout << "El jugador : " << j.nombre
<< " ha llegado al final del juego : " << j.veces_final
<< " veces." << endl;
}
void introducir_datos_fichero(datos_jugador j, ofstream & escritura_jugadores) {
cout
<< "Vamos a guardar los datos del jugador en el fichero de texto : simon.txt."
<< endl;
escritura_jugadores.open("simon.txt");
if (escritura_jugadores.fail()) {
cout << "Error en la apertura del fichero simon.txt, lo sentimos."
<< endl;
} else {
escritura_jugadores << j.codigo << endl;
escritura_jugadores << j.nombre << endl;
escritura_jugadores << j.partidas << endl;
escritura_jugadores << j.puntuacion_ultima << endl;
escritura_jugadores << j.puntuacion_max << endl;
escritura_jugadores << j.veces_final << endl;
}
escritura_jugadores.close();
}
bool existencia_jugador_fichero(datos_jugador & j, ifstream & lectura_jugadores,
int codigoint) {
bool existe = false;
lectura_jugadores.open("simon.txt");
if (lectura_jugadores.fail()) {
cout
<< "Lo sentimos, se ha producido un error en la lectura del fichero."
<< endl;
} else {
lectura_jugadores >> j.codigo;
while (!lectura_jugadores.eof() && existe == false) {
if (codigoint == j.codigo) {
existe = true;
}
lectura_jugadores >> j.nombre;
lectura_jugadores >> j.partidas;
lectura_jugadores >> j.puntuacion_max;
lectura_jugadores >> j.puntuacion_ultima;
lectura_jugadores >> j.veces_final;
lectura_jugadores >> j.codigo;
}
if (existe == false) {
cout
<< "El jugador que has introducido no se encuentra en el fichero, por lo tanto, lo vamos a introducir: "
<< endl;
j = introducir_datos();
}
cout << "Datos leidos correctamente..." << endl;
if (codigoint == j.codigo) {
cout << "El jugador con codigo : " << codigoint
<< " si existe en el fichero." << endl;
}
}
lectura_jugadores.close();
return existe;
}
void carga_colores_sonidos_numero0(numerosypuntos n) {
if (n.al[0] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[0] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[0] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[0] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[0] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[0] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[0] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[0] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[0] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[0] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[0] == 10) {
textcolor(11);
Beep(233, 544);
} //Fin for
}
void carga_colores_sonidos_numero1(numerosypuntos n) {
if (n.al[1] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[1] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[1] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[1] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[1] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[1] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[1] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[1] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[1] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[1] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[1] == 10) {
textcolor(11);
Beep(233, 544);
} //Fin for
}
void carga_colores_sonidos_numero2(numerosypuntos n) {
if (n.al[2] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[2] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[2] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[2] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[2] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[2] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[2] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[2] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[2] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[2] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[2] == 10) {
textcolor(11);
Beep(233, 544);
} //Fin for
}
void carga_colores_sonidos_numero3(numerosypuntos n) {
if (n.al[3] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[3] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[3] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[3] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[3] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[3] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[3] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[3] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[3] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[3] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[3] == 10) {
textcolor(11);
Beep(233, 544);
} //Fin for
}
void carga_colores_sonidos_numero4(numerosypuntos n) {
if (n.al[4] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[4] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[4] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[4] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[4] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[4] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[4] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[4] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[4] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[4] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[4] == 10) {
textcolor(11);
Beep(233, 544);
} //Fin for
}
void carga_colores_sonidos_numero5(numerosypuntos n) {
if (n.al[5] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[5] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[5] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[5] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[5] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[5] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[5] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[5] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[5] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[5] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[5] == 10) {
textcolor(11);
Beep(233, 544);
} //Fin for
}
void carga_colores_sonidos_numero6(numerosypuntos n) {
if (n.al[6] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[6] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[6] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[6] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[6] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[6] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[6] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[6] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[6] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[6] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[6] == 10) {
textcolor(11);
Beep(233, 544);
} //Fin for
}
void carga_colores_sonidos_numero7(numerosypuntos n) {
if (n.al[7] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[7] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[7] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[7] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[7] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[7] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[7] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[7] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[7] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[7] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[7] == 10) {
textcolor(11);
Beep(233, 544);
} //Fin for
}
void carga_colores_sonidos_numero8(numerosypuntos n) {
if (n.al[8] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[8] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[8] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[8] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[8] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[8] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[8] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[8] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[8] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[8] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[8] == 10) {
textcolor(11);
Beep(233, 544);
} //Fin for
}
void carga_colores_sonidos_numero9(numerosypuntos n) {
if (n.al[9] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[9] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[9] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[9] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[9] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[9] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[9] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[9] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[9] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[9] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[9] == 10) {
textcolor(11);
Beep(233, 544);
} //Fin for
}
void carga_colores_sonidos_numero10(numerosypuntos n) {
if (n.al[10] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[10] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[10] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[10] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[10] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[10] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[10] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[10] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[10] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[10] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[10] == 10) {
textcolor(11);
Beep(233, 544);
} //Fin for
}
bool ronda_1(numerosypuntos n, datos_jugador & j) {
bool controlador=true;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << endl;
Sleep(1500);
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<1;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}
}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[0];
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 1." << endl;
cout << "Llevas una puntuacion total de : " << j.puntuacion_ultima
<< endl;
cout << "******************RONDA 2*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = j.puntuacion_ultima-M/3;
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de : " << j.puntuacion_max << endl;
}
return controlador;
}
bool ronda_2(numerosypuntos n, datos_jugador & j) {
bool controlador;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << " ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<2;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}
}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[1];
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 2." << endl;
cout << "Llevas una puntuacion total de : " << j.puntuacion_ultima
<< endl;
cout << "******************RONDA 3*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[1];
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de : " << j.puntuacion_max << endl;
}
return controlador;
}
bool ronda_3(numerosypuntos n, datos_jugador & j) {
bool controlador=true;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << " ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << " ";
Sleep(1500);
carga_colores_sonidos_numero2(n);
cout << n.al[2] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<3;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}
}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[2];
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 3." << endl;
cout << "Llevas una puntuacion total de : " << j.puntuacion_ultima
<< endl;
cout << "******************RONDA 4*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[1];
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de : " << j.puntuacion_max << endl;
}
return controlador;
}
bool ronda_4(numerosypuntos n, datos_jugador & j) {
bool controlador;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << " ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << " ";
Sleep(1500);
carga_colores_sonidos_numero2(n);
cout << n.al[2] << " ";
Sleep(1500);
carga_colores_sonidos_numero3(n);
cout << n.al[3] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<4;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}
}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[3];
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 4." << endl;
cout << "Llevas una puntuacion total de : " << j.puntuacion_ultima
<< endl;
cout << "******************RONDA 5*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[2];
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de : " << j.puntuacion_max << endl;
}
return controlador;
}
bool ronda_5(numerosypuntos n, datos_jugador & j) {
bool controlador;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << " ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << " ";
Sleep(1500);
carga_colores_sonidos_numero2(n);
cout << n.al[2] << " ";
Sleep(1500);
carga_colores_sonidos_numero3(n);
cout << n.al[3] << " ";
Sleep(1500);
carga_colores_sonidos_numero4(n);
cout << n.al[4] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<3;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}
}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[4];
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 5." << endl;
cout << "Llevas una puntuacion total de : " << j.puntuacion_ultima
<< endl;
j.puntuacion_ultima = n.punt_fib[4] + M / 2;
cout<< "Y POR HABER PASADO YA LA MITAD DEL JUEGO, ¡¡¡TE LLEVAS UN BONUS DE 15 PUNTOS!!!" << endl;
Beep(322, 1000);
Beep(122, 1000);
Beep(343, 1000);
cout << "Llevas una puntuacion total de : " << j.puntuacion_ultima
<< endl;
cout << "******************RONDA 6*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[3];
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de : " << j.puntuacion_max << endl;
}
return controlador;
}
bool ronda_6(numerosypuntos n, datos_jugador & j) {
bool controlador;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << " ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << " ";
Sleep(1500);
carga_colores_sonidos_numero2(n);
cout << n.al[2] << " ";
Sleep(1500);
carga_colores_sonidos_numero3(n);
cout << n.al[3] << " ";
Sleep(1500);
carga_colores_sonidos_numero4(n);
cout << n.al[4] << " ";
Sleep(1500);
carga_colores_sonidos_numero5(n);
cout << n.al[5] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<6;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}
}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[5]+M/2;
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 6." << endl;
cout << "Llevas una puntuacion total de : " << j.puntuacion_ultima
<< endl;
cout << "******************RONDA 7*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[4]+M/2;
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de : " << j.puntuacion_max << endl;
}
return controlador;
}
bool ronda_7(numerosypuntos n, datos_jugador & j) {
bool controlador;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << " ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << " ";
Sleep(1500);
carga_colores_sonidos_numero2(n);
cout << n.al[2] << " ";
Sleep(1500);
carga_colores_sonidos_numero3(n);
cout << n.al[3] << " ";
Sleep(1500);
carga_colores_sonidos_numero4(n);
cout << n.al[4] << " ";
Sleep(1500);
carga_colores_sonidos_numero5(n);
cout << n.al[5] << " ";
Sleep(1500);
carga_colores_sonidos_numero6(n);
cout << n.al[6] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<7;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}
}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[6]+M/2;
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 7." << endl;
cout << "Llevas una puntuacion total de : " << j.puntuacion_ultima
<< endl;
cout << "******************RONDA 8*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[5]+M/2;
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de : " << j.puntuacion_max << endl;
}
return controlador;
}
bool ronda_8(numerosypuntos n, datos_jugador & j) {
bool controlador;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << " ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << " ";
Sleep(1500);
carga_colores_sonidos_numero2(n);
cout << n.al[2] << " ";
Sleep(1500);
carga_colores_sonidos_numero3(n);
cout << n.al[3] << " ";
Sleep(1500);
carga_colores_sonidos_numero4(n);
cout << n.al[4] << " ";
Sleep(1500);
carga_colores_sonidos_numero5(n);
cout << n.al[5] << " ";
Sleep(1500);
carga_colores_sonidos_numero6(n);
cout << n.al[6] << " ";
Sleep(1500);
carga_colores_sonidos_numero7(n);
cout << n.al[7] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<9;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}
}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[7]+M/2;
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 8." << endl;
cout << "Llevas una puntuacion total de : " << j.puntuacion_ultima
<< endl;
cout << "******************RONDA 9*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[6]+M/2;
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de : " << j.puntuacion_max << endl;
}
return controlador;
}
bool ronda_9(numerosypuntos n, datos_jugador & j) {
bool controlador;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << " ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << " ";
Sleep(1500);
carga_colores_sonidos_numero2(n);
cout << n.al[2] << " ";
Sleep(1500);
carga_colores_sonidos_numero3(n);
cout << n.al[3] << " ";
Sleep(1500);
carga_colores_sonidos_numero4(n);
cout << n.al[4] << " ";
Sleep(1500);
carga_colores_sonidos_numero5(n);
cout << n.al[5] << " ";
Sleep(1500);
carga_colores_sonidos_numero6(n);
cout << n.al[6] << " ";
Sleep(1500);
carga_colores_sonidos_numero7(n);
cout << n.al[7] << " ";
Sleep(1500);
carga_colores_sonidos_numero8(n);
cout << n.al[8] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<9;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}
}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[8]+M/2;
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 9 ." << endl;
cout << "Llevas una puntuacion total de : " << j.puntuacion_ultima
<< endl;
cout
<< "******************RONDA 10*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[7]+M/2;
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de : " << j.puntuacion_max << endl;
}
return controlador;
}
bool ronda_10(numerosypuntos n, datos_jugador & j) {
bool controlador;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << " ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << " ";
Sleep(1500);
carga_colores_sonidos_numero2(n);
cout << n.al[2] << " ";
Sleep(1500);
carga_colores_sonidos_numero3(n);
cout << n.al[3] << " ";
Sleep(1500);
carga_colores_sonidos_numero4(n);
cout << n.al[4] << " ";
Sleep(1500);
carga_colores_sonidos_numero5(n);
cout << n.al[5] << " ";
Sleep(1500);
carga_colores_sonidos_numero6(n);
cout << n.al[6] << " ";
Sleep(1500);
carga_colores_sonidos_numero7(n);
cout << n.al[7] << " ";
Sleep(1500);
carga_colores_sonidos_numero8(n);
cout << n.al[8] << " ";
Sleep(1500);
carga_colores_sonidos_numero9(n);
cout << n.al[9] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<10;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}
}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[9]+M/2+M;
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 10." << endl;
cout << "Llevas una puntuacion total de : " << j.puntuacion_ultima
<< endl;
j.veces_final++;
j.partidas++;
cout<< "ENHORABUENA, ¡¡¡ERES UN AUTENTICO GENIO!!! HAS CONSEGUIDO ACABARTE EL JUEGO."<< endl;
cout<< "**********************¡¡¡FIN DEL JUEGO!!!*************************************"<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[8]+M/2;
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de : " << j.puntuacion_max << endl;
}
return controlador;
}
void jugar(datos_jugador & j, numerosypuntos n, bool controlador) {
bool prueba = true;
controlador = ronda_1(n, j);
prueba = controlador;
if (prueba == true) {
controlador = ronda_2(n, j);
prueba = controlador;
}
if (prueba == true) {
controlador = ronda_3(n, j);
prueba = controlador;
}
if (prueba == true) {
controlador = ronda_4(n, j);
prueba = controlador;
}
if (prueba == true) {
controlador = ronda_5(n, j);
prueba = controlador;
}
if (prueba == true) {
controlador = ronda_6(n, j);
prueba = controlador;
}
if (prueba == true) {
controlador = ronda_7(n, j);
prueba = controlador;
}
if (prueba == true) {
controlador = ronda_8(n, j);
prueba = controlador;
}
if (prueba == true) {
controlador = ronda_9(n, j);
prueba = controlador;
}
if (prueba == true) {
controlador = ronda_10(n, j);
prueba = controlador;
} else {
cout << "Has perdido." << endl;
Sleep(4000);
asteriscos();
}
}
void instrucciones_juego(numerosypuntos n) {
textcolor(LIGHTRED);
cout
<< "******************************************************************************************************************************"
<< endl;
cout
<< "*********************************************INSTRUCCIONES DEL JUEGO**********************************************************"
<< endl;
cout
<< "******************************************************************************************************************************"
<< endl;
textcolor(WHITE);
cout << "1.-Aparecera un numero en la pantalla." << endl;
cout<< "2.-Deberas memorizar el numero bien, tienes 5 segundos para hacerlo."<< endl;
cout<< "3.-Despues, deberas introducir ese mismo numero correctamente, si no lo haces el juego terminara y perderas. Tu puntuacion sera de -10."<< endl;
cout<< "4.-Si aciertas, iras progresando en el juego, pasaras de ronda. Aparecera el numero que aparecio anteriormente, mas otro nuevo. Asi sera hasta que termines las 10 rondas o pierdas."<< endl;
cout<< "5.-Los puntajes son los siguientes (RONDA 0 ES LA RONDA 1, RONDA 9 ES LA RONDA 10)"<< endl;
for (int i = 0; i < N; i++) {
cout << "Si superas la ronda: " << i << " te llevas: "
<< n.punt_fib[i] << " puntos." << endl;
}
cout<< "6.-Si consigues llegar a la mitad del juego (ronda 5), recibiras una bonificación extra de 15 puntos."<< endl;
cout<< "7.-Si consigues acabar el juego (ronda 10), recibiras una bonificacion extra de 30 puntos. "<< endl;
textcolor(LIGHTRED);
cout<< "**************************************¡¡A JUGAR!!*****************************************************************************"<< endl;
Beep(330, 100);
Sleep(100);
Beep(330, 100);
Sleep(300);
Beep(330, 100);
Sleep(300);
Beep(262, 100);
Sleep(100);
Beep(330, 100);
Sleep(300);
Beep(392, 100);
Sleep(700);
Beep(196, 100);
Sleep(700);
textcolor(WHITE);
}
void actualizar_fichero(ofstream & escritura_jugadores, datos_jugador j) {
escritura_jugadores.open("simon.txt");
if (escritura_jugadores.fail()) {
cout << "Error en la apertura del fichero de escritura." << endl;
} else {
escritura_jugadores << j.codigo << endl;
escritura_jugadores << j.nombre << endl;
escritura_jugadores << j.partidas << endl;
escritura_jugadores << j.puntuacion_ultima << endl;
escritura_jugadores << j.puntuacion_max << endl;
escritura_jugadores << j.veces_final << endl;
}
escritura_jugadores.close();
}
void introducir_datosjugador_menor_enfichero(ofstream & esciturajugadormenor, datos_jugador j){
esciturajugadormenor.open("jugadormenor.txt");
if (esciturajugadormenor.fail()) {
cout << "Error en la apertura del fichero de escritura." << endl;
} else {
esciturajugadormenor << j.codigo << endl;
esciturajugadormenor << j.nombre << endl;
esciturajugadormenor<< j.partidas << endl;
esciturajugadormenor << j.puntuacion_ultima << endl;
esciturajugadormenor << j.puntuacion_max << endl;
esciturajugadormenor << j.veces_final << endl;
esciturajugadormenor << j.edad << endl;
}
esciturajugadormenor.close();
}
/**bool existencia_jugador_fichero(datos_jugador & j, ifstream & lectura_jugadores,
int codigoint) {
bool existe = false;
lectura_jugadores.open("jugadormenor.txt");
if (lectura_jugadores.fail()) {
cout
<< "Lo sentimos, se ha producido un error en la lectura del fichero."
<< endl;
} else {
lectura_jugadores >> j.codigo;
while (!lectura_jugadores.eof() && existe == false) {
if (codigoint == j.codigo) {
existe = true;
}
lectura_jugadores >> j.nombre;
lectura_jugadores >> j.partidas;
lectura_jugadores >> j.puntuacion_max;
lectura_jugadores >> j.puntuacion_ultima;
lectura_jugadores >> j.veces_final;
lectura_jugadores >> j.edad;
lectura_jugadores >> j.codigo;
}
if (existe == false) {
cout
<< "El jugador que has introducido no se encuentra en el fichero, por lo tanto, lo vamos a introducir: "
<< endl;
j = introducir_datos();
}
cout << "Datos leidos correctamente..." << endl;
if (codigoint == j.codigo) {
cout << "El jugador con codigo : " << codigoint
<< "no se puede jugar.Porque no esta permitido el juego a menores" << endl;
}
}
lectura_jugadores.close();
return existe;
}
**/