Hola.
Cita: Porque ju debe ser char, si va a tener un numero?
En realidad por que es mas sencillo de evaluar como caracter, luego se puede convertir a su valor numérico.
Con la modificación de la elección quedaría:
Código C:
Ver original#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char* argv[])
{
char *v[3] = {"piedra","papel","tijeras"};
char ju, pc, jugados = 1, ganados = 0, perdidos = 0;
srand((unsigned) time(NULL
)); /* por que tuviste problemas con randomize */ do {
printf("Jugada %d | Ganados:%2d Perdidos:%2d\n",jugados
, ganados
, perdidos
); printf("---------------------------------------\n"); printf("elija una opcion (1-3)\n");
do
while (ju != '1' && ju != '2' && ju != '3');
ju -= 49; /* '1' = 49, '2' = 50, '3' = 51 => 0,1,2 (también puede usarse atoi ) */
printf("Ud eligio %s, la PC eligio %s => ", v
[ju
], v
[pc
]); if (ju == pc)
else if ((ju == 0 && pc == 2)||(ju == 1 && pc == 0)||(ju == 2 && pc == 1)) {
ganados++;
}
else {
perdidos++;
}
jugados++;
} while (ganados < 5 && perdidos < 5);
if (ganados > perdidos)
printf("Ud ha ganado en %d intentos.",jugados
); else
printf("Ud ha perdido en %d intentos.",jugados
);
return 0;
}
Saludos.