Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/01/2014, 15:09
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: ¿cómo hago un menu para c++?

Código C++:
Ver original
  1. #include <iostream>
  2.     #include <cstdlib>
  3.     #include <ctime>
  4.     #include <string>
  5.      
  6.     using namespace std;
  7.      
  8.     const int numero_intentos=7;
  9.      
  10.     int rellenado (char, string, string&);
  11.    
  12.  int azar(){
  13.     srand(time(NULL));
  14.     int n = (0 + rand() % 10);
  15.     return n;
  16.  }    
  17.      
  18.     int main (){    
  19.         int continuar;
  20.         bool play;
  21.         string name;
  22.         int puntos=0;
  23.         char letra;
  24.         int menu;
  25.         int num_fallos=0;
  26.         string palabra_secreta;
  27.         string palabras[] ={    
  28.            "Perro",
  29.            "sandia",
  30.            "caracol",
  31.            "sorpresa",
  32.            "gato",
  33.            "queso",
  34.            "sombrero",
  35.            "neptuno",
  36.            "monje",
  37.            "ladron"
  38.         };
  39.             // menu de bienvenida y reglas
  40.             cout << "\n\nBienvenido al ahorcado";
  41.             cout << "\n\nREGLAS:";
  42.             cout << "\n\nCada letra esta representada por un asterisco";
  43.             cout << "\n\nPuedes ingresar una o varias letras a la vez pero cada una cuenta como un intento";
  44.             cout << "\n\nAcertar suma dos puntos, errar resta uno. Siempre que resuelvas antes de que se te terminen los intentos sumas 10 puntos";
  45.             cout << "\n\nTienes " << numero_intentos << " intentos, acertar no resta intentos";
  46.              
  47.             cout << "\n----------------------------------------------";  
  48.                    
  49.         //GAMELOOP
  50.         while( play ){
  51.             // seleccionamos una palabra al azar dentro de 'palabras' a la que llamamos 'palabra_secreta'
  52.            
  53.             string palabras[] ={    
  54.                 "Perro",
  55.                 "sandia",
  56.                 "caracol",
  57.                 "sorpresa",
  58.                 "gato",
  59.                 "queso",
  60.                 "sombrero",
  61.                 "neptuno",
  62.                 "monje",
  63.                 "ladron"
  64.             };
  65.            
  66.             int n=azar();
  67.             palabra_secreta=palabras[n];
  68.             //cout << endl << "chuletillaXD: " << palabras[n] << endl;
  69.             // convertimos la palabra a asteriscos
  70.             string oculta(palabra_secreta.length(),'*');
  71.              
  72.             // estructura while que nos hace ingresar una letra hasta que se nos terminen los intentos
  73.             while (num_fallos < numero_intentos){
  74.                 cout << "\n\n" << oculta;
  75.                 cout << "\n\nIngresa una letra: ";
  76.                 cin >> letra;
  77.                 // utilizamos la función de rellenado, si la letra no está dentro de la palabra se imprime el mensaje y nos resta un punto pero si acertamos, nos suma 2 y nos imprime los puntos y el mensaje de acierto
  78.                 if (rellenado(letra, palabra_secreta, oculta)==0){
  79.                     cout << endl << "La letra no se encuentra en la palabra" << endl;
  80.                     num_fallos++;
  81.                     puntos -= 1;
  82.                 }
  83.                 else{
  84.                     cout << endl << "Has acertado una letra" << endl;
  85.                     puntos += 2;
  86.                     cout << endl << "Puntos: " << puntos << endl;
  87.                 }
  88.                 // imprime el numero de intentos que nos quedan
  89.                 cout << "Te queda " << numero_intentos - num_fallos;
  90.                 cout << " intentos." << endl;
  91.                
  92.                 // comprobamos si el usuario ya ha adivinado la palabra secreta al completo
  93.                 if (palabra_secreta==oculta){
  94.                     cout << palabra_secreta << endl;
  95.                     cout << "Lo conseguiste! la palabra secreta era " << palabra_secreta << endl;
  96.                     puntos +=10;
  97.                     cout << "Tu puntuacion es " << puntos << endl;
  98.                     num_fallos = 0;
  99.                     break;
  100.                    
  101.                 }
  102.                 if(num_fallos == numero_intentos){
  103.                     cout << "\nPerdiste, se te acabaron los intentos" << endl;
  104.                     cout << "La palabra era: " << palabra_secreta << endl;
  105.                     num_fallos = 0;
  106.                     break;
  107.                 }          
  108.  
  109.  
  110.  
  111.  
  112.                      
  113.             }//FIN DE WHILE
  114.  
  115.            
  116.            
  117.             //jugamos otra vez?    
  118.             cout << "desea seguir jugando?" << endl;
  119.             cout << "1 - si" << endl << "2 - no" << endl;      
  120.             cin >> continuar;  
  121.            
  122.        
  123.  
  124.             if ( continuar == 2){
  125.                 play = false;
  126.             }
  127.             else{
  128.                 play = true;
  129.             }
  130.         }//ENDGAMELOOP
  131.        
  132.         cout << "Adios!";
  133.         cin.ignore();
  134.         cin.get();
  135.         return 0;
  136.        
  137.        
  138.     }//ENDMAIN
  139.      
  140.      
  141.      
  142.      
  143.      
  144.      
  145.     /* tomamos la la letra, la palabra secreta y vamos rellenando secreta_rellenar, despues devolvemos los aciertos. Si la letra
  146.     ya la probamos en un intento anterior entonces se devuelve 0 */
  147.      
  148.     int rellenado (char letra_intento, string palabrasecreta, string &secreta_rellenar){
  149.         int i;
  150.         int aciertos=0;
  151.         int numletras=palabrasecreta.length();
  152.         for (i = 0; i< numletras; i++){
  153.             // si la letra ya la probamos en un intento anterior
  154.             if (letra_intento == secreta_rellenar[i])
  155.             return 0;
  156.      
  157.             // si la letra esta en la palabra que tenemos que adivinar
  158.             if (letra_intento == palabrasecreta[i]){
  159.                 secreta_rellenar[i] = letra_intento;
  160.                 aciertos++;
  161.             }
  162.         }
  163.         return aciertos;
  164.     }//FIn DE LA FUNCION RELLENO

ahí lo tienes XD
creo que va bien, el beta tester eres tu XD
Suerte!
PD:Recuerda una cosa:
Casi todos los juegos están dentro de un gameloop

Última edición por vangodp; 10/01/2014 a las 15:16