No jogo infantil Pedra-Papel-Tesoura, os jogadores escolhem si...

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 jogado

1 Resposta

Escola Educação

Vamos implementar o jogo Pedra-Papel-Tesoura em C, conforme as instruções fornecidas. Usaremos letras para representar as escolhas dos jogadores: 'P' para Pedra, 'A' para Papel e 'T' para Tesoura. O programa executará o jogo por 10 rodadas e, ao final, mostrará o número de vitórias de cada jogador.

Aqui está o código completo:

```c
#include
#include

#define NUM_RODADAS 10

// Função para ler e validar a jogada de um jogador
char ler_jogada(int jogador) {
    char jogada;
    while (1) {
        printf("Jogador %d, digite sua jogada (P para Pedra, A para Papel, T para Tesoura): ", jogador);
        scanf(" %c", &jogada);
        jogada = toupper(jogada);
        if (jogada == 'P' || jogada == 'A' || jogada == 'T') {
            return jogada;
        } else {
            printf("Jogada inválida. Tente novamente.\\n");
        }
    }
}

// Função para determinar o vencedor de uma rodada
int determinar_vencedor(char jogada1, char jogada2) {
    if (jogada1 == jogada2) {
        return 0; // Empate
    } else if ((jogada1 == 'P' && jogada2 == 'T') ||
               (jogada1 == 'A' && jogada2 == 'P') ||
               (jogada1 == 'T' && jogada2 == 'A')) {
        return 1; // Jogador 1 vence
    } else {
        return 2; // Jogador 2 vence
    }
}

int main() {
    int vitorias_jogador1 = 0;
    int vitorias_jogador2 = 0;

    for (int i = 0; i < NUM_RODADAS; i++) {
        printf("\\nRodada %d\\n", i + 1);

        char jogada1 = ler_jogada(1);
        char jogada2 = ler_jogada(2);

        int resultado = determinar_vencedor(jogada1, jogada2);

        if (resultado == 0) {
            printf("Empate\\n");
        } else if (resultado == 1) {
            printf("JOGADOR 1 venceu esta rodada\\n");
            vitorias_jogador1++;
        } else {
            printf("JOGADOR 2 venceu esta rodada\\n");
            vitorias_jogador2++;
        }
    }

    printf("\\nResultados finais:\\n");
    printf("Jogador 1 venceu %d vezes\\n", vitorias_jogador1);
    printf("Jogador 2 venceu %d vezes\\n", vitorias_jogador2);

    return 0;
}
```

**Explicação do código:**

1. **Definições e Constantes:**
   - `NUM_RODADAS`: Define o número total de rodadas do jogo.
   
2. **Função `ler_jogada`:**
   - Esta função lê a jogada de um jogador, garantindo que a entrada seja válida (`P`, `A`, ou `T`). Em caso de entrada inválida, solicita a jogada novamente.

3. **Função `determinar_vencedor`:**
   - Esta função determina o vencedor da rodada comparando as jogadas dos dois jogadores.
   - Retorna `0` para empate, `1` para vitória do Jogador 1, e `2` para vitória do Jogador 2.

4. **Função `main`:**
   - Inicializa os contadores de vitórias de cada jogador.
   - Executa um laço de 10 iterações para as rodadas do jogo.
   - Para cada rodada, lê as jogadas dos dois jogadores, determina o vencedor, e atualiza os contadores de vitórias conforme o resultado.
   - Após as 10 rodadas, imprime o número total de vitórias de cada jogador.

Este programa garante que o jogo Pedra-Papel-Tesoura seja jogado corretamente, com validação de entrada e contagem das vitórias dos jogadores ao longo de 10 rodadas.

Mais perguntas de Enem





















Toda Materia
Toda Materia
Toda Materia

Você tem alguma dúvida?

Faça sua pergunta e receba a resposta de outros estudantes.

'; var conteudo = document.getElementById("question").innerHTML; // Encontre o ponto de divisão no texto var pontoDivisao = conteudo.indexOf('\n'); if (pontoDivisao === -1) { pontoDivisao = conteudo.indexOf('
'); } if (pontoDivisao !== -1) { var conteudoAtualizado = conteudo.slice(0, pontoDivisao) + anuncio + conteudo.slice(pontoDivisao); document.getElementById("question").innerHTML = conteudoAtualizado; }