Buscar

EP 11-B de Introdução à Programação 2016/01 Nota 95

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

ep11-B/.DS_Store
__MACOSX/ep11-B/._.DS_Store
ep11-B/EP 11.pdf
INF 01040 – Introdução à Programação
Exercícios
Entrega Programada 11
Introdução à Programação (INF 01040) 3
Entrega Programada 11 – B
Descrição: Jan-Ken-Pon
Implementar um jogo de Pedra, Papel e Tesoura (jan-ken-pon). O usuário deve jogar escolhendo uma das opções, 1 
para pedra, 2 para papel ou 3 para tesoura. O computador deve jogar também (um número aleatório entre 1 e 3). 
Devem ser implementadas pelo menos 3 funções (além da main):
● Lê jogada (sem parâmetros de entrada, retorna um inteiro): informa ao usuário quais são as opções de jogada 
que ele pode fazer, lê a opção selecionada pelo usuário e verifica se ele informou uma jogada válida (1, 2 ou 3). 
Ao final retorna o número da jogada feita pelo usuário.
● Imprime jogada (recebe uma jogada inteira, não retorna nada): de acordo com a entrada informada imprime na 
tela pedra, papel ou tesoura.
● Calcula resultado (recebe dois parâmetros, a jogada do usuário e a do computador, retorna o resultado 
inteiro): de acordo com as jogadas a função deve imprimir:
“Papel cobre pedra” ou “Tesoura corta papel” ou “Pedra amassa tesoura”
Ao final, a função "calcula resultado" retorna 1 em caso de empate, 2 para vitoria do usuário ou 3 para vitória do 
computador.
A função principal (main) deve chamar as outras funções para fazer o jogo funcionar. Primeiro deve-se ler a opção do 
usuário e gerar uma opção para o computador. Depois imprimir as duas jogadas. Por fim calcular o resultado e dizer 
quem venceu ou se houve empate. Em caso de empate, iniciar uma nova rodada.
Atenção: O programa deverá obrigatoriamente usar funções.
O programa deverá ser entregue pelo moodle.
		Slide 1
		Entrega Programada 11 – B Descrição: Jan-Ken-Pon
__MACOSX/ep11-B/._EP 11.pdf
ep11-B/ep11.c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int jogadadousuario (void)
{
 int n;
 printf("\n\t\tRegras do JA KEN PO:\nDigite 1 para pedra.\nDigite 2 para tesoura.\nDigite 3 para papel.\n");
 do {
 printf("Digite o numero da sua jogada: ");
 scanf("%d", &n);
 } while(n!=1 && n!=2 && n!=3);
 return n;
}
void imprimejogada (n)
{
 printf("\nA jogada escolhida por voce foi:\n");
 switch(n)
 {
 case 1:
 printf("PEDRA\n");
 break;
 case 2:
 printf("TESOURA\n");
 break;
 case 3:
 printf("PAPEL\n");
 }
}
int jogadadocomputador (void)
{
 int comp=0;
 srand(time(NULL));
 comp = (rand() % 3) + 1;
 printf("\nA jogada escolhida aleatoriamente pelo computador foi:\n");
 if (comp==1)
 printf("PEDRA\n");
 if (comp==2)
 printf("TESOURA\n");
 if (comp==3)
 printf("PAPEL\n");
 return comp;
}
int calcularesultado (int jogadadousuario, int jogadadocomputador)
{
 int comp=0, n=0, result=0;
 comp = jogadadocomputador;
 n = jogadadousuario;
 if (comp==1 && n==2)
 {
 printf("\nPedra amassa tesoura.\n");
 result = 3;
 return (3);//significa que o computador venceu
 }
 else
 {
 if (comp==2 && n==1)
 {
 printf("\nTesoura corta papel.\n");
 return (3);
 }
 else
 {
 if (comp==3 && n==1)
 {
 printf("\nPapel cobre pedra.\n");
 result = 3;
 return (3);
 }
 else
 {
 if (comp==2 && n==1)
 {
 printf("\nPedra amassa tesoura.\n");
 result = 3;
 return (2);//significa que o usuario venceu
 }
 else
 {
 if (comp==3 && n==2)
 {
 printf("\nTesoura corta papel.\n");
 result = 2;
 return (2);
 }
 else
 {
 if (comp==1 && n==3)
 {
 printf("\nPapel cobre pedra.\n");
 result = 2;
 return (2);
 }
 else
 {
 if (comp==1 && n==1)
 {
 printf("\nPedra contra pedra.\n");
 result = 1;
 return (1);
 }
 else
 {
 if (comp==2 && n==2)
 {
 printf("\nTesoura contra tesoura.\n");
 result = 1;
 return (1);
 }
 else
 {
 printf("\nPapel contra papel.\n");
 result = 1;
 return (1);
 }
 }
 }
 }
 }
 }
 }
 }
}
int main ()
{
 int result=0;
 int vc, pc;
 vc = jogadadousuario ();
 pc = jogadadocomputador ();
 imprimejogada (vc);
 result = calcularesultado (vc, pc);
 if (result == 1)
 {
 printf("\nO Jogo ficou empatado! Por favor, tente novamente.\n");
 main ();
 }
 if (result == 2)
 printf("\nVoce venceu!!! Parabens!\n\n");
 if (result == 3)
 printf("\nVoce perdeu para o computador. =/\n\n");
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais