elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con juego del ahorcado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con juego del ahorcado  (Leído 1,867 veces)
Nic88_bhba

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Problema con juego del ahorcado
« en: 26 Diciembre 2014, 20:54 pm »

Hola tengo un problema con un juego del ahorcado que saque de un libro llamado
Beggining C++ que enseña programacion de juegos. El problema es que no me reconoce mas de una letra correcta ademas de la primera. No se en que le estoy errando por que esta igual que en el libro. Saludos.


#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <ctime>
#include <cctype>


using namespace std;

int main(int argc, char *argv[]) {
   
   const int res_incorrectas = 8;
   
   vector<string> palabras;
   
   palabras.push_back("Adivina");
   
   palabras.push_back("Ahorcado");
   
   palabras.push_back("Dificultad");
   
   srand(time(0));
   
   random_shuffle(palabras.begin() , palabras.end());
   
   const string la_palabra = palabras[0];
   
   int error = 0;

   string hasta_ahora(la_palabra.size(), '-');
   
   string usada = "";
   
   cout << "\nBienvenido a Ahorcado V1.0\n";
   
   while ((error < res_incorrectas) && (hasta_ahora != la_palabra))
      
   {
      
      cout << "\nTienes " << (res_incorrectas - error) << " oportunidades para acertar.\n";
      
      cout << "\nHas usado las siguientes letras " << usada << "\n";
      
      cout << "\nHasta ahora la palabra es: " << hasta_ahora << "\n";
      
      
      char respuesta;
      
      cout << "\n\nIngresa una letra: ";
      
      cin >> respuesta;
      
      respuesta = toupper(respuesta);
      
      while (usada.find(respuesta) != string::npos)
         
      {
         
         cout << "\nYa has ingresado: " << respuesta << "\n";
         
         cout << "\nIngresa tu respuesta: \n";
         
         cin >> respuesta,
            
         respuesta = toupper(respuesta);
         
         
      }
      
      usada+= respuesta;
      
      if (la_palabra.find(respuesta) != string::npos)
         
      {
         cout << "\nMuy bien! " << respuesta << " esta en la palabra.\n";
         
         for (int i=0 ; i < la_palabra.length(); ++i)
         
         if (la_palabra == respuesta)
         
         {   
            
            hasta_ahora = respuesta;
         
         }
      }
      
      else
      
      {
         cout << "\nPerdon, " << hasta_ahora << " no es la palabra.\n";
      
          ++error;
         
      }
      
      
      
   }   
   
   
   if (error == res_incorrectas)
      
    {
      
      cout << "\nHas sido colgado!\n";
      
      cout << "\nLa palabra es: " << la_palabra;
      
    }
   
   else
      
      {   
         cout << "\nAcertaste!!!\n";
         
         cout << "\nLa palabra es: " << la_palabra;
      }
   
   
   return 0;


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Problema con juego del ahorcado
« Respuesta #1 en: 26 Diciembre 2014, 23:59 pm »

Usas toupper(), por tanto las letras del vector de palabras deberían estar todas en mayúsculas.

PD: Utiliza etiquetas GeSHi para postear código.


En línea

patilanz


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
Re: Problema con juego del ahorcado
« Respuesta #2 en: 27 Diciembre 2014, 00:09 am »

Lo que dijo ivancea96 y aquí tienes otro fallo:

Código
  1. for (int i = 0; i < la_palabra.length(); ++i)
  2.  
  3. if (la_palabra == respuesta)
  4.  
  5. {
  6.  
  7. hasta_ahora = respuesta;
  8.  
  9. }
Primero el bucle mejor que lo cierres {} y tu lo que haces es comparar la palabra que es un string con la respuesta que es un char. Es como comparar si (hola == h) nunca van a ser iguales.

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Juego del ahorcado C#
.NET (C#, VB.NET, ASP)
treblatp 3 12,633 Último mensaje 3 Febrero 2011, 20:18 pm
por Khronos14
Juego del Ahorcado
ASM
ziony 1 5,155 Último mensaje 27 Abril 2012, 21:52 pm
por Eternal Idol
Avance del juego ahorcado (C++)
Programación C/C++
Danyel_Casvill 0 1,728 Último mensaje 26 Abril 2013, 02:48 am
por Danyel_Casvill
JUEGO EL AHORCADO
Java
bengy 2 2,054 Último mensaje 3 Marzo 2014, 16:19 pm
por bengy
Ayuda, problema ejercicio juego ahorcado
Programación C/C++
Philips 3 1,968 Último mensaje 8 Abril 2019, 04:50 am
por lola linares
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines