Dev - C++ - Juego de Adivina el Numero

   
Vista:

Juego de Adivina el Numero

Publicado por Joe (1 intervención) el 04/06/2017 23:04:14
Hola buenas tardes espero me puedan ayudar, hice este codigo en c++ de un juego que adivina el numero que estas pensando, lo unico que me falta es agregarle un contador o acumulador que me diga al final con cuantos intentos logre llegar a mi numero, espero me puedan ayudar con lo que me falta, es un proyecto final.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
int main()
{
	int OP;
	int a, b, c, s;
 
	cout<<"Ingrese limite inferior de un rango	:";
	cin>>a;
	cout<<"Ingrese limite superior de un rango	:";
	cin>>b;
	cout<< endl;
 
mateu:
srand(time(0));
	c=a+(rand()%(b-a+1));
 
 
 
	cout<<"	Su numero es:	";
	cout<<c;
 
	cout<<endl;
	cout<<"Seleccione la opcion que corresponda"<<endl;
	cout<<"1. Menor"<<endl;
	cout<<"2. Mayor"<<endl;
	cout<<"3. Es ese"<<endl;
	cout<<endl<<"\n";
 
	cin>>OP;
 
	if (OP==1)
	{
	    b=c-1;
		goto mateu;
 
	}
 
	if(OP==2)
	{
	    a=c+1;
		goto mateu;
	}
	if(OP==3)
	{
		cout<<endl<<"\n";
		cout<<"Su numero es:	"<<c;
	}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Juego de Adivina el Numero

Publicado por agustin (522 intervenciones) el 05/06/2017 01:09:26
No te aconsejo que uses goto. Eso se puede hacer con bucles y queda mucho más claro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Carlos Luis

Juego de Adivina el Numero

Publicado por Carlos Luis (19 intervenciones) el 06/06/2017 01:03:05
Buenas tardes, la verdad que te aconsejo que sigas la recomendación que te dio el usuario agustin. Hace mucho tiempo que no veía programas realizados con goto. Usualmente se utilizan funciones y bucles while llamando a estas funciones.

Sin embargo, pudieras colocar una variable publica entera llamada contador = 0; antes de int main() y cada vez que el usuario indica si el numero que le muestras es mayor o menor, incrementas el contador.

Espero haber ayudado,

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Juego de Adivina el Numero

Publicado por agustin (522 intervenciones) el 06/06/2017 10:54:16
Sin goto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <iostream>
#include <ctime>
 
using namespace std;
 
void limpiar_buffer()
{
    int caracter=0;
    while(caracter!='\n'){
        caracter=cin.get();
    }
}
 
void pausar()
{
    cin.get();
}
 
int main()
{
    //Usa nombres descriptivos para no volverte loco con los nombres de las variables
    int op, lim_inf, lim_sup, num, intentos=0;
 
    cout << "Ingrese limite inferior de un rango: ";
    cin >> lim_inf;
    cout << "Ingrese limite superior de un rango: ";
    cin >> lim_sup;
 
    //La semilla solo hay que inicializarla una sola vez
    srand(time(NULL));
 
    //Obtengo el numero aleatorio dentro del rango para iniciar el juego
    //Se podria hacer sin rand colocandose en el centro del rango pero ya no tendria nada de azar
    num=lim_inf+(rand()%(lim_sup-lim_inf+1));
 
    do{
        cout << endl << num << " es su numero?" << endl << endl;
        cout << "Seleccione la opcion que corresponda" << endl;
	cout << "1. Menor" << endl;
	cout << "2. Mayor" << endl;
	cout << "3. Es ese" << endl;
	cout << "Opcion: ";
	cin >> op;
        intentos++;
 
	    switch(op)
	    {
            case 1:
	        lim_sup=num-1;
                num=lim_inf+(lim_sup-lim_inf)/2; //Mas rapido que el azar
                break;
	    case 2:
	        lim_inf=num+1;
                num=lim_inf+(lim_sup-lim_inf)/2; //Mas rapido que el azar
                break;
            case 3:
		cout << endl << endl;
                cout << "Su numero es:	" << num << endl;
                cout << "Se ha conseguido en " << intentos << " intentos." << endl;
                break;
	    }
    }while(op!=3);
 
    //Limpio el buffer de entrada
    limpiar_buffer();
 
    //Pauso el programa
    pausar();
 
    //main es de tipo int con lo que tiene que retornar un valor entero
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad