Prévia do material em texto
Estudo de caso
No jogo infantil Pedra-Papel-Tesoura, os jogadores escolhem simultaneamente um
membro do conjunto {TESOURA, PAPEL, PEDRA}, indicando suas escolhas com sinais de mão: se
as duas escolhas forem iguais, o jogo recomeça; se as escolhas diferirem, um jogador vence,
conforme a seguinte relação:
· Pedra vence Tesoura;
· Papel vence Pedra;
· Tesoura vence Papel.
Escreva um programa em C que implemente esse jogo.
O programa terá dois jogadores (1 e 2) e uma letra ou número para representar as escolhas.
Caberá ao aluno definir como deseja representá-las; seguem algumas sugestões:
· 'P' ou 1 para Pedra;
· 'A' ou 2 para Papel;
· 'T' ou 3 para Tesoura;
Em um laço de repetição, faça a leitura da jogada de ambos. Se o valor digitado for inválido, faça
o jogador digitar novamente o valor.
Depois dos dois jogadores terem jogado, verifique se houve vencedor ou empate:
· Se os valores digitados forem iguais, escreva: “Empate”;
· Se o valor do Jogador 1 venceu, escreva: “JOGADOR 1 venceu esta rodada”;
· Se o valor do Jogador 2 venceu, escreva: “JOGADOR 2 venceu esta rodada”.
Faça com que esse laço de repetição seja executado por 10 vezes. Após a execução do laço,
mostre quantas vezes ganhou cada jogador.
#include <math.h>
#include <setjmp.h>
#include <time.h>
#include <stdio.h>
int main(void){
int jogador1 = 0, jogada1;
int jogador2 = 0, jogada2;
int i;
for (i=1; i<=10; i++){
do{
printf("Jogada 1 (1=Pedra, 2=Papel, 3=Tesoura):");
scanf("%d",&jogada1);
}while (jogada1<1||jogada1<3);
do{
printf("Jogada2 (1=Pedra, 2=Papel 3=Tesoura):");
scanf("%d",&jogada2);
}while (jogada2<1||jogada2<3);
if (jogada1 == jogada2)
printf("Empate\n\n");
else if(jogada1==1&&jogada2==3||jogada1==2&&jogada2==1||jogada1==3&&jogada2==2){
printf("JGADOR1 venceu esta rodada\n\n");
jogador1++;
}else{
printf("JOGADOR2 venceu esta rodada\n\n");
jogador2++;
}
}
printf("JOGADOR1 ganhou %d vezes\n",jogador1);
printf("JOGADOR2 ganhou %d vezes\n",jogador2);
return 0;
}