Dev - C++ - Ayuda juego adivina en C++

 
Vista:
sin imagen de perfil

Ayuda juego adivina en C++

Publicado por Gustavo (2 intervenciones) el 02/11/2015 06:14:52
Buen día, gracias por su atención tengo que hacer un juego en c++ de adivina el numero, trata que la computadora adivine el numero en el que estas pensando, por ejemplo si el numero que pienso es el 20, la computadora imprimirá en pantalla un numero random entre el 1 y el 100, supongamos que ese numero random es el 80 entonces el programa pregunta si el numero en que yo pensé es menor o mayor al que salio random osea el 80, entonces como 20<80 el nuevo limite de números random es del 1 al 80, depures de salir otro valor random, por ejemplo el 16 entonces 20>16 por lo tanto el nuevo limite es de 16 a 80 y así sucesivamente hasta llegar al 20

Aquí esta el código del programa que llevo, pero todavía no logro poder hacer los limites de los números random correctamente como podria hacerle,
Gracias.

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
#include<iostream>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
using namespace std;
 
int main()
{
	int temp,incognita,minimoX=0,maximoX=0,op;
    cout<<"\n\tAdivinare tu numero"<<endl;
 
    srand(time(NULL));
    incognita=rand()%100;
 
    while(temp!=true)
    {
        cout<<"\n\tTu numero es "<<incognita<<endl;
        cout<<"\n\t1-Tu numero es menor a: "<<incognita<<"\n\t2-Tu numero es mayor a: "<<incognita<<"\n\t3-O el "<<incognita<<" es tu numero?"<<endl;
        cin>>op;
        switch(op)
        {
        	case 1:
        		minimoX=1+rand()%incognita;
        		break;
        	case 2:
        		maximoX=1+rand()%incognita+incognita;
        		break;
        	case 3:
        		temp=true;
        		break;
 
        }
        incognita=(minimoX+maximoX)/2;
        system("cls");
    }
    cout<<"\n\tAdivine tu numero!!!!"<<endl;
    incognita=0;minimoX=1;minimoX=100;
	return 0;
}

Gracias por su ayuda
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
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda juego adivina en C++

Publicado por aguml (522 intervenciones) el 02/11/2015 13:33:11
El problema es porque minimo y maximo no los tienes inicializados correctamente, o sea, si el mínimo es 1 y el máximo es 100 minimo=1 y maximo=100.
Si por ejemplo piensas en el 20 y el programa dice 80 entonces haces maximo=incognita-1 y si dice 10 pues minimo=incognita+1. Mínimo y máximo son los valores a usar con rand.
O sea que en el switch realmente harías valor=rand ()%(máximo -minimo+1)+mínimo o algo así. Eso sería tanto en case 1 como en case 2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Ayuda juego adivina en C++

Publicado por Gustavo (2 intervenciones) el 02/11/2015 23:23:05
Gracias, en verdad me as ayudado mucho ha resolver el problema, ahora las mayorías de las veces si adivina el numero pero en ocasiones se crashea el programa debido a los limites, que crees que pueda ser?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
while(temp!=true)
    {
        cout<<"\n\tTu numero es "<<incognita<<endl;
        cout<<"\n\t1-Tu numero es menor a: "<<incognita<<"\n\t2-Tu numero es mayor a: "<<incognita<<"\n\t3-O el "<<incognita<<" es tu numero?"<<endl;
        cin>>op;
        switch(op)
        {
        	case 1:
        		maximo=incognita-1;
        		incognita=rand ()%(maximo -minimo+1)+minimo;
        		contador++;
        		break;
        	case 2:
        		minimo=incognita+1;
        		incognita=rand ()%(maximo -minimo+1)+minimo;
        		contador++;
        		break;
        	case 3:
        		temp=true;
        		break;
 
        }

gracias me has ayudado mucho.
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