[SOLUCIONADO] Generar nombre aleatorio.

Iniciado por Yugget, 8 Marzo 2014, 13:59 PM

0 Miembros y 2 Visitantes están viendo este tema.

Yugget

Hola, muy buenas.

¿Entonces cómo puedo imprimirlo?.

Por que he intentado cambiar la variable:

Código (cpp) [Seleccionar]
resultado = rand() % 3 + 1;

abajo del switch... pero me lanza al default...

Un cordial saludo.

ivancea96

Qué quieres imprimir? Quién ganó?

Yugget

Hola muy buenas,

Osea yo ingreaso: tijeras, papel o piedra... y luego se genera un resultado que es: piedra, papel, o tijeras...

Eso es.. se muestra correctamente pero se muestra el número incognico del case...

Un cordial saludo.

xaps

No entiendes lo que hace tu código. Te he añadido un par de líneas de ayuda para que averigües dónde está tu fallo, aunque ya te lo hayan dicho...
Código (cpp) [Seleccionar]
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <time.h>

using namespace std;

int main()
{
   string num;
   int t1;
   int resultado;
   srand(time(0));
   resultado = rand() % 3 + 1;

   cout << "Introduzca piedra, papel o tijeras: " << endl;
   cin >> num;

    //Resultado aleatorio
   switch(resultado)
   {
       case 1:
            cout << "Tijeras" << endl;
            break;
       case 2:
            cout << "Piedra" << endl;
            break;
       case 3:
            cout << "Papel" << endl;
            break;
            default:
            cout << "Ha ocurrido un error..." << endl;
   }

   //Resultados no aleatorios (escogido por el usuario)
   if(num == "tijeras")
   {
       cout << resultado << endl;
   }
   else if(num == "piedra")
   {
       cout << resultado << endl;
   }
   else if(num == "papel")
   {
       cout << resultado << endl;
   }  
   else
   {
       cout << "No es correcto." << endl;
   }

   getch();
   return 0;
}
"The programmers of tomorrow are the wizards of the future" - Gave Newel

Yugget

Hola, muy buenas.

Por mi parte no le veo ningún fallo, funciona todo correctamente solo que se muestra el número del case... seguramente por que muestro la variable resultado en un cout como me han dicho:

Haces cout de "resultado" jiji

Pero entonces cómo podría imprimirlo... estoy probando cambiando de estructura y demás pero sigue igual.

¿Podrían darme alguna otra pista por favor?.

Gracias y disculpe las molestias.

Un cordial saludo.

xaps

Imprimir el que? Explícate mejor, no soy el primero en preguntártelo ya...
"The programmers of tomorrow are the wizards of the future" - Gave Newel

ivancea96

Dejemos las cosas claras:

Código (cpp) [Seleccionar]

    if(num == "tijeras")
    {
        cout << resultado << endl;
    }
    else if(num == "piedra")
    {
        cout << resultado << endl;
    }
    else if(num == "papel")
    {
        cout << resultado << endl;
    } 
    else
    {
        cout << "No es correcto." << endl;
    }

    getch();
    return 0;
}


Esa línea escribe el número del case, si "num" es una entrada válida (piedra, papel o tijera). Sinó, muestra el otro mensaje.

Esos if son absurdos. ¿Qué pretendías que hicieran?

Yugget

Hola, muy buenas.

He echo esos if, para determinar los caracteres que han introducido en la variable num, osea que si en la variable escribo tijeras y es igual al texto del if se ejecute una sentencia, osea el resultado elejido al azar por el pc.
Y si lo escrito no es ninguno de esos if lo tomará como nulo.

Un cordial saludo.

ivancea96

Esque el resultado, es un numero del 1 al 3.
Quizás prefieras hacer 3 "IF" dentro de cada IF, para poner "Empate", "Derrota", "Victoria".

Yugget

Hola muy buenas,

Eso también es verdad, de echo lo voy a probar...

Pero me gustaría antes saber una cosa a poder ser,

¿No hay alguna forma de poder hacer un case con letras?.

Osea en vez de ser así:

case 1

sea

case HOLA

Un cordial saludo.