<div dir="ltr">Hola Óscar,<div class="gmail_extra"><br><div class="gmail_quote">2013/2/16 Oscar <span dir="ltr"><<a href="mailto:pelucheloko@hotmail.com" target="_blank">pelucheloko@hotmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div dir="ltr">
<div dir="ltr">
<div style="font-size:12pt;font-family:Calibri">
<div>Hola que tal.</div>
<div> </div>
<div>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:</div>
<div> </div></div></div></div></blockquote><div><br></div><div style>[CORTE]</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div dir="ltr"><div style="font-size:12pt;font-family:Calibri">
<div>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.</div>
<div> </div></div></div></div></blockquote><div><br></div><div style>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.</div>
<div style><br></div><div style>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,</div>
<div style><br></div><div>srand( time(NULL) );</div><div style><br></div><div style>const char szMensaje[3] = { "piedra", "papel", "tijera" };<br></div><div>int s = rand() % 3;<br></div><div style>
<br></div><div style>cout << "Ordenador: " << szMensaje[s] << endl;</div><div><br></div><div><br></div><div style>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.</div>
<div><br></div><div><br></div><div style>Espero que esto te ayude.</div><div><br></div><div style>Steven</div><div style><br></div></div></div></div>