[C con Clase] Problema con código

Davidson, Steven srd4121 en njit.edu
Dom Feb 17 03:43:22 CET 2013


Hola Óscar,

2013/2/16 Oscar <pelucheloko en hotmail.com>

>   Hola que tal.
>
> Estoy intentando hacer el juego de piedra – papel y tijera. Para ello
> utilizo rand() y uso un vector para rellenar el vector con unas cadenas de
> texto específicas dependiento del valor que arroje rand(). Os pego un trozo
> de código que es el que me está dando problemas:
>
>

[CORTE]

El error que salta es que “ordenador” dice el compilador que no está
> definido, no se, no funciona como espero, un poco de ayuda por favor.
>
>

El problema es que defines 'ordenador' en el ámbito de 'if'. Esto significa
que al entrar en 'if', se crea el vector (o array), 'ordenador', y al
terminar el ámbito, éste se destruye. Por lo tanto, no existe 'ordenador'
fuera del bloque, indicado por llaves.

La solución es crear un vector de cadenas de caracteres a modo de base de
datos. Sabes de antemano los mensajes de texto que quieres usar. Por lo
tanto, guarda todos en un vector y simplemente usa el valor calculado
aleatoriamente a modo de índice para acceder a tal o cual cadena. Esto es,

srand( time(NULL) );

const char szMensaje[3] = { "piedra", "papel", "tijera" };
int s = rand() % 3;

cout << "Ordenador: " << szMensaje[s] << endl;


No hace falta las sentencias de 'if', ya que la asociación del valor de 's'
y la cadena correspondiente ya existe a la hora de usar vectores: a través
de un índice.


Espero que esto te ayude.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130216/c7d84b41/attachment.html>


Más información sobre la lista de distribución Cconclase