Good afternoon! I am implementing a game of stone, paper and scissors, where the application of functions occurs, with and without argument and return. I was in doubt after the program to identify the options of the user and the computer, because I could not hit the final result Ex: "Stone kneads scissors" but to cases where I did not choose scissors or stone.
#include < stdio.h >
#include < stdlib.h >
#include < time.h >
int ler_jogada() {
int jog_usuario;
printf("Digite (1) para pedra, (2) para papel, (3) para tesoura: ");
scanf("%d", & jog_usuario);
return jog_usuario;
while (jog_usuario < 1 || jog_usuario > 3) {
printf("Valor invalido, informe outro!");
scanf("%d", & jog_usuario);
fflush(stdin);
}
return jog_usuario;
}
int ler_comp() {
int jogada_comp;
srand(time(NULL));
jogada_comp = 1 + rand() % 4;
return jogada_comp;
}
void imprime_jog(int jog_usuario, int jogada_comp) {
switch (jog_usuario) {
case 1:
printf("\nVoce escoheu pedra!");
break;
case 2:
printf("\nVoce escolheu papel!");
break;
case 3:
printf("\nVoce escolheu tesoura!");
break;
}
switch (jogada_comp) {
case 1:
printf("\nEscolhi pedra!");
break;
case 2:
printf("\nEscolhi papel!");
break;
case 3:
printf("\nEscolhi tesoura!");
break;
}
}
int calc_resultado(int jog_usuario, int jogada_comp) {
if (jog_usuario == 1 && jogada_comp == 2) {
printf("\nPapel cobre pedra!");
return 1;
}
if (jog_usuario == 1 && jogada_comp == 3) {
printf("\nPedra amassa tesoura!");
return 2;
}
if (jog_usuario == 2 && jogada_comp == 1) {
printf("\nPapel cobre pedra!");
return 2;
}
if (jog_usuario == 2 && jogada_comp == 3) {
printf("\nTesoura corta papel!");
return 1;
}
if (jog_usuario == 3 && jogada_comp == 1) {
printf("\nPedra amassa tesoura");
return 1;
}
if (jog_usuario == 3 && jogada_comp == 2) {
printf("\nTesoura corta papel");
return 2;
}
if (jog_usuario == jogada_comp) {
return 3;
}
return 0;
}
int main() {
int jog_usuario, jogada_comp, x;
jog_usuario = ler_jogada();
jogada_comp = ler_comp();
imprime_jog(jog_usuario, jogada_comp);
x = calc_resultado(jog_usuario, jogada_comp);
switch (x) {
case 1:
printf("\n\nGanhei! Quem sabe voce ganha na proxima...!");
break;
case 2:
printf("\n\nVoce ganhou!!!Parabens!");
break;
case 3:
printf("\n\nEmpate! Vamos de novo!");
printf("\n");
main();
break;
}
return 0;
}