<div dir="ltr">Hola Óscar,<div class="gmail_extra"><br><div class="gmail_quote">2014-04-15 14:06 GMT-04:00 Oscar Aparicio Holgado <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><div dir="ltr">Hola que tal.<div><br></div><div>Tengo el siguiente código (es el juego de piedra papel y tijera) :</div><div><br></div></div></div></blockquote><div><br></div><div>Veamos el código fuente.</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><div dir="ltr"><div></div><div><div>#include <iostream></div>
<div>#include <time.h></div><div>#include <stdlib.h></div></div></div></div></blockquote><div><br></div><div>Los nombres correctos son <ctime> y <cstdlib>.</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><div dir="ltr"><div><div>using namespace std;</div><div><br></div><div>int main()</div><div>{</div><div><br></div><div>    srand( time(NULL) );</div><div><br></div><div><span style="white-space:pre-wrap">       </span>const char *ordenador[3] = { "piedra", "papel", "tijera" };</div>
<div><span style="white-space:pre-wrap">  </span>int s = rand() % 3;</div><div><br></div><div><span style="white-space:pre-wrap">     </span>//cout << "Eleccion de la maquina: " << ordenador[s] << endl;</div>
<div><br></div><div><span style="white-space:pre-wrap"> </span>int eleccion;</div><div><br></div><div><span style="white-space:pre-wrap">   </span>cout << "Introduce n. jugada (1 = piedra, 2 = papel, 3 = tijera): ";</div>
<div><span style="white-space:pre-wrap">  </span>cin >> eleccion;</div><div><span style="white-space:pre-wrap">   </span>cout << endl;</div><div><br></div><div><span style="white-space:pre-wrap">     </span>if(eleccion == 1);</div>
</div></div></div></blockquote><div><br></div><div>Aquí tienes el error: el punto y coma.</div><div><br></div><div>Te interesa que 'if' controle todo lo que sigue, pero al indicar el punto y coma, básicamente tienes esto:<br>
<br>if( eleccion == 1 ) {}<br><br>if(eleccion == 1 && ordenador[s] == ordenador[0])  ...<br></div><div><br></div><div>O sea, tienes dos sentencias independientes, cuando te interesa que la segunda sea dependiente de la primera</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><div dir="ltr"><div><div>            if(eleccion == 1 && ordenador[s] == ordenador[0])</div>
</div></div></div></blockquote><div><br></div><div>Estás comprobando direcciones de memoria, porque el contenido de 'ordenador' es un puntero. Además, no tiene sentido comprobar cadenas de caracteres, cuando tienes un índice.</div>
<div><br></div><div>Simplemente comprueba el índice calculado de 's'.</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><div dir="ltr"><div><div>                 cout << "Empate!" << endl;</div><div>            else if(eleccion == 1 && ordenador[s] == ordenador[1])</div><div>                 cout << "Perdistes panoli!" << endl;</div>
<div>            else if(eleccion == 1 && ordenador[s] == ordenador[2])</div></div></div></div></blockquote><div><br></div><div>No tiene sentido comprobar si 'eleccion == 1' tres veces, porque ya lo comprobaste al principio:<br>
<br></div><div>if( eleccion == 1 )<br>{<br>  ...<br>}</div><div><br></div><div>Tampoco tiene sentido comprobar la última posibilidad de:</div><div><br></div><div>ordenador[s] == ordenador[2]</div><div><br></div><div>porque si llegas aquí, significa que sólo te queda una opción. Por deducción, debe ser este caso.</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><div dir="ltr"><div><div>                 cout << "Ganastes tronko!" << endl;</div>
<div>         else if(eleccion == 2);</div></div></div></div></blockquote><div><br></div><div>Aquí está el otro error.</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><div dir="ltr"><div><div>             if(eleccion == 2 && ordenador[s] == ordenador[0])</div><div>                 cout << "Ganastes tronko!!" << endl;</div><div>             else if(eleccion == 2 && ordenador[s] == ordenador[1])</div>
<div>                 cout << "Empate!!" << endl;</div><div>             else if(eleccion == 2 && ordenador[s] == ordenador[2])</div><div>                cout << "Perdistes panoli!!" << endl;</div>
<div>         else if(eleccion == 3);</div></div></div></div></blockquote><div><br></div><div>Y aquí el tercero.</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><div dir="ltr"><div><div>             if(eleccion == 3 && ordenador[s] == ordenador[0])</div><div>                 cout << "Perdistes panoli!!!" << endl;</div><div>             else if(eleccion == 3 && ordenador[s] == ordenador[1])</div>
<div>                 cout << "Ganastes tronko!!!" << endl;</div><div>             else if(eleccion == 3 && ordenador[s] == ordenador[2])</div><div>                 cout << "Empate!!!" << endl;</div>
<div><span style="white-space:pre-wrap">  </span>return 0;</div><div>}</div></div><div><br></div></div></div></blockquote><div><br></div><div>Sugiero que analices el problema y sobre todo el comportamiento, antes de lanzarte a programar. Como pista, sugiero que crees una tabla de las posibilidades y de los resultados; algo como,</div>
<div><br></div><div>J1 \ J2 |  R | P | T<br>----------+----+---+----</div><div>    R    |      |    |</div><div>----------+----+---+----<br></div><div><div>    P    |      |    |</div><div>----------+----+---+----<br></div>
</div><div><div>    T    |      |    |</div><div><br></div></div><div>donde,</div><div><br></div><div>J1 : Jugador #1</div><div>J2 : Jugador #2<br></div><div>R : piedra<br></div><div>P : papel<br>T : tijera</div><div><br>
</div><div>Rellena cada casilla con el resultado desde el punto de vista de J1:<br>G : Ganador</div><div>E : Empate<br></div><div>V : Vencido   (es por no usar P de perdedor, porque usamos P como Papel)</div><div><br></div>
<div>Ahora puedes diseñar tu programa basado en este análisis.<br></div><div><br></div><div><br></div><div>Espero que esto te oriente.</div><div><br></div><div>Steven</div><div><br></div></div></div></div>