Advertisement
Narovik

2.16 - Adivinar numero rango

Nov 24th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.08 KB | None | 0 0
  1. #include <iostream>
  2. #include <limits>
  3. using namespace std;
  4.  
  5. class Juego {
  6.  
  7.  
  8.  
  9. public:
  10.     int ValorMin, ValorMax, ValorMedio;
  11.     void PedirExtremos();
  12.     char AdivinarNumero();
  13.     bool CompruebaEsMenor();
  14.     bool CompruebaEsMayor();
  15.     char comparacion;
  16. };
  17.  
  18. void Juego::PedirExtremos(){
  19.     do{
  20.     cout << "Introduce valor minimo: ";
  21.     cin >> ValorMin;
  22.     cout << "Introduce valor maximo: ";
  23.     cin >> ValorMax;
  24.     if (ValorMin > ValorMax) cout << "Error...\n";
  25.     }while(ValorMin > ValorMax);
  26.  
  27. }
  28.  
  29. char Juego::AdivinarNumero(){
  30.  
  31.     ValorMedio = (ValorMin + ValorMax)/2;
  32.  
  33.     do{
  34.     cout << "Estoy pensando en: "<<ValorMedio<<", tu numero es mayor(>), menor(<) o igual(=)? ->";
  35.     cin >> comparacion;
  36.     if(comparacion!='>' && comparacion!='<' && comparacion != '='){
  37.             cin.ignore(numeric_limits<streamsize>::max(), '\n'); //Evita un bucle infinito
  38.             cout << "Caracter no valido...\n";
  39.             }
  40.     }while((comparacion!='>' && comparacion!='<' && comparacion != '='));
  41.     return comparacion;
  42. }
  43.  
  44. bool Juego::CompruebaEsMenor(){
  45.  
  46.     ValorMax = ValorMedio - 1;
  47.     if(ValorMin <= ValorMax) return true;
  48.     else return false;
  49.  
  50. }
  51.  
  52. bool Juego::CompruebaEsMayor(){
  53.  
  54.     ValorMin = ValorMedio + 1;
  55.     if(ValorMin <= ValorMax) return true;
  56.     else return false;
  57.  
  58. }
  59.  
  60. int main(){
  61. char continuar='s';
  62. Juego hl3;
  63.  
  64. while(continuar=='s'){
  65. hl3.PedirExtremos();
  66. do{
  67. hl3.AdivinarNumero();
  68. if (hl3.comparacion == '=')
  69.     cout <<"Lo adivine pinches gringos\n";
  70. else if (hl3.comparacion == '<'){
  71.     if (!hl3.CompruebaEsMenor()){
  72.             cout <<"Usted intenta enganiarme, gringo";
  73.             hl3.comparacion = '=';
  74.     }
  75.     else hl3.ValorMax = hl3.ValorMedio;
  76. }
  77.  
  78. else if (hl3.comparacion == '>'){
  79.     if (!hl3.CompruebaEsMayor()){
  80.     cout <<"Usted intenta enganiarme, gringo";
  81.     hl3.comparacion = '=';
  82.     }
  83.     else hl3.ValorMin = hl3.ValorMedio;
  84. }
  85. else cout<< "Error wey";
  86. }while(hl3.comparacion != '=');
  87.  
  88. cout <<"\nDeseas seguir jugando (s/n) -> ";
  89. cin >> continuar;
  90. }
  91. cout << "\nAdios!";
  92. return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement