Problema con mini-juego

Dudas sobre los distintos compiladores C/C++ en Linux
Responder
Mensaje
Autor
ArceDev
Mensajes: 2
Registrado: 29/08/2017 10:42 am

Problema con mini-juego

#1 Mensaje por ArceDev » 29/08/2017 10:50 am

Hola, estoy estudiando C++ y para practicar decidí hacer un pequeño juego, el cual consiste en recordar 4 números que se muestran por un cuarto de segundo y luego introducirlos cuando lo pida.
Cuando el juego termina, pregunta al usuario si se quiere continuar jugando, o salir. Cuando elijo que se cierre (después de haber jugado otra partida anteriormente y haber elegido que quiero seguir jugando) simplemente no lo hace y actúa como si quisiera volver a jugar. ¿Se entiende a lo que me refiero? ¿Me podrían dar una solución?
Gracias.

Código: Seleccionar todo

#include <iostream>
#include <cstdlib>
#include <unistd.h>
#include <ctime>
using namespace std;
int main() {
	bool ejecutar = true;
	while(ejecutar == true) {
		int respuesta;
		int correctos[4] = {0,0,0,0};
		srand(time(0));
		int num[4];
		num[0] = 1 + (rand() % 9);
		num[1] = 1 + (rand() % 9);
		num[2] = 1 + (rand() % 9);
		num[3] = 1 + (rand() % 9);
		system("clear");
		cout << "Como jugar:" << endl << "Debes recordar los cuatro numeros que" << endl << "aparecen en pantalla y luego" << endl << "introducirlos cuando lo pida" << endl;
		cin.get();
		system("clear");
		cout << "Empezar..." << endl;
		cin.get();
		system("clear");
		cout << num[0] << " " << num[1] << " " << num[2] << " " << num[3] << endl;
		usleep(250000);
		system("clear");
		int i = 0;
		int j = 1;
		while (i < 4) {
			cout << "Numero " << j << ": ";
			cin >> respuesta;
			if (num[i] == respuesta) {
				correctos[i] = 1;
			}
			i++;
			j++;
		}
		char op;
		if (correctos[0] == 1 && correctos[1] == 1 && correctos[2] == 1 && correctos[3] == 1) {
			system("clear");
			cout << "Has ganado!" << endl;
			cout << endl << "Deseas seguir jugando? (S/n)" << endl;
			cin >> op;
			if (op == 'S' || op == 's') {
				main();
			}
			else if (op == 'N' || op == 'n') {
				ejecutar = false;
			}
			else {
				system("clear");
				cout << "La opcion no existe" << endl;
				cin.ignore();
				cin.get();
				main();
			}
		}
		else {
			system("clear");
			cout << "Has perdido!" << endl;
			cout << "Los numeros eran: " << num[0] << " " << num[1] << " " << num[2] << " " << num[3] << endl;
			cout << endl << "Deseas seguir jugando? (S/n)" << endl;
			cin >> op;
			if (op == 'S' || op == 's') {
				main();
			}
			else if (op == 'N' || op == 'n') {
				ejecutar = false;
			}
			else {
				system("clear");
				cout << "La opcion no existe" << endl;
				cin.ignore();
				cin.get();
				main();
			}
		}
	}
	return 0;
}


Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados