Пример #1
0
int main(int argc, char * argv[]){
	if(argc != 2){
		cerr << "Dame un nombre de archivo" << endl;
		return 0;
	}
	ifstream f;
	f.open(argv[1]);
	Todosrasgos RT;
	Personaje POcultoJ1;
	Personaje POcultoJ2;
	CPersonajes CP;
	Config C;
	Cadenas Buffer;
	int numeropre;
	char * SI = new char [4];
	char * NO = new char [4];
	strcpy(SI, "Si");
	strcpy(NO, "No");
	char * JSI = new char [20];
	char * JNO = new char [20];
	JSI = ConcatenarJugador(SI);
	JNO = ConcatenarJugador(NO);
	char * MSI = new char [20];
	char * MNO = new char [20];
	MSI = ConcatenarMaquina(SI);
	MNO = ConcatenarMaquina(NO);
	f >> RT;
	f >> CP;
	f >> C;
	Preguntas P;
	P.CrearPreguntas(RT);
	srand(time(NULL));
	int random1 = rand() % CP.Numeroper();
	POcultoJ1 = CP.AccedePersonaje(random1);//Guarda el Personaje Oculto
	int random2 = rand() % CP.Numeroper();
	POcultoJ2 = CP.AccedePersonaje(random2);
	CrearVentana(C.Ventalto()+1, C.Ventancho()+1, "Quien es Quien");
	C.PintaConfig();
	Tablero TJugador(C.Filas(), C.Columnas(), CP);
	Tablero TMaquina(C.Filas(), C.Columnas(), CP);
	C.DibujaCaras(TJugador);
	for(int m=0; m<C.Filas(); m++){
		for(int b=0; b<C.Columnas(); b++){
			TJugador.DesTacha(m,b);
		}
	}
	for(int m=0; m<C.Filas(); m++){
		for(int b=0; b<C.Columnas(); b++){
			TMaquina.DesTacha(m,b);
			}
		}
	C.DibujaCarasOcultas(C.car_ocult);
	C.PintaOcultoJ1(POcultoJ1);
	C.PintaOcultoJ2(C.car_ocult);
	C.PintaPreguntas(P);
	
	
	///PARTE JUEGO!!!
	int iwin, jwin, puntuacion = 0, puntuaciontot = 0;
	for(int z=0; !TJugador.ComprGanador(iwin, jwin); z++){
		POcultoJ1 = CP.AccedePersonaje(random1);
		POcultoJ2 = CP.AccedePersonaje(random2);
		numeropre = C.Recogedatos(P);
		char * pregunta_selec = new char [40];
		pregunta_selec = P.BuscaPreguntas(numeropre);
		bool respuesta = POcultoJ2.Respuesta(pregunta_selec);
		pregunta_selec = ConcatenarJugador(pregunta_selec);
		C.PintaTerminal(pregunta_selec, Buffer);
		if(respuesta){
			C.PintaTerminal(MSI, Buffer);
		}
		else{
			C.PintaTerminal(MNO, Buffer);
		}
		
		int x, y, i, j;
		CronometroInicio();
		int raton1=0;
		while(raton1 != -1){
			C.PintaCrono(CronometroValor());
			if(ConsultarRaton(x, y) == SDL_BUTTON_LEFT)
				raton1 = C.EncuentraCoordenadas(x, y, i, j);
			else
				raton1 = 1;
			if(raton1 == -2){
				C.DibujaCaras(TJugador);
				for(int m=0; m<C.Filas(); m++){
					for(int b=0; b<C.Columnas(); b++){
						TJugador.DesTacha(m,b);
					}
				}
			}
			if(raton1 == 0){
				C.TacharPersonaje(i,j);
				TJugador.Tacha(i,j);
			}
			int tiempo = CronometroValor();
			if(tiempo > C.TiempoEspera())
				raton1 = -1;
		}
		int tiempo1 = CronometroValor();
		int tiempoesp = C.TiempoEspera();
		puntuaciontot = puntuaciontot + tiempo1;
		C.LimpiaPuntuacion();  
		C.PintaPuntuacion(puntuaciontot);
		bool Ganar2 = TJugador.ComprGanador(iwin, jwin);
		if(Ganar2){
			Personaje Pganador = TJugador.AccedePersonaje(iwin, jwin);
			if(strcmp(Pganador.Ruta(), POcultoJ2.Ruta()) == 0){
				C.PintaTerminal("JUGADOR HA GANADO!", Buffer);
				C.DescubreOcultoJ2(POcultoJ2);
				EsperarTecla();
				return 0;
			}
		}
		C.ReiniciaCrono();
		char * pregunta_selec2 = new char [40];
		//P.CrearPreguntas(RT);
		pregunta_selec2 = P.BuscaPreguntas(rand() % P.SacarPreguntastot());
		while(pregunta_selec2 == 0){
			pregunta_selec2 = P.BuscaPreguntas(rand() % P.SacarPreguntastot());
		}
		bool respuesta2 = POcultoJ1.Respuesta(pregunta_selec2);
		pregunta_selec2 = ConcatenarMaquina(pregunta_selec2);
		C.PintaTerminal(pregunta_selec2, Buffer);
		if(respuesta2){
			C.PintaTerminal(JSI, Buffer);
		}
		else{
			C.PintaTerminal(JNO, Buffer);
		}
		//Tacha Maquina
		for(int i=0; i<C.Filas(); i++){
			for(int j=0; j<C.Columnas(); j++){
				Personaje Ptacha = TMaquina.AccedePersonaje(i,j);
				bool respuesta3 = Ptacha.Respuesta(pregunta_selec2);
				if(respuesta3 != respuesta2){
					TMaquina.Tacha(i, j);
					C.TacharPersonajeM(i,j);
				}
			}
		}
		bool Ganar = false;
		Ganar = TMaquina.ComprGanador(iwin, jwin);
		if(Ganar == true){
			Personaje Pganador = TMaquina.AccedePersonaje(iwin, jwin);
			if(strcmp(Pganador.Ruta(), POcultoJ1.Ruta()) == 0){
				C.PintaTerminal("MAQUINA HA GANADO!", Buffer);
				C.DescubreOcultoJ2(POcultoJ2);
				EsperarTecla();
				return 0;
			}
			
		}
	}
	f.close();
}