Você está na página 1de 2

Laboratório de Programação I Trabalho 3: Programa com repetição (for) e função Profa Patrícia Pitthan

Suponha que você e seu amigo queiram jogar um jogo de dados, mas não têm os dados “físicos”.
Como você não se deixa abalar por um desafio, decide desenvolver seu próprio jogo com o auxílio
do computador.

No jogo Chega em Zero, os dois jogadores iniciam com uma pontuação de 999. O objetivo do jogo
é alcançar exatamente a pontuação zero. O jogo utiliza-se de 3 dados convencionais (numerados
de 1 a 6). O primeiro jogador arremessa os três dados e organiza os números exibidos em um
único número de três dígitos. Supondo que os dados deram 2, 4 e 6; é possível organizá-los em:
246, 264, 426, 462, 624 ou 642. Subtrai-se, então, o valor escolhido do valor 999. Na sua vez, o
segundo jogador faz o mesmo procedimento.

Pontos importantes:
• Com exceção da primeira rodada de cada jogador, os jogadores não precisam
necessariamente arremessar os três dados. Caso prefiram, podem trabalhar com
apenas um ou dois dados;
• Caso o resultado da subtração chegue a um número menor que zero, o participante
perde a vez e não pontua naquela rodada;
• O vencedor é aquele que atingir exatamente a pontuação 0 primeiro.

Implemente um programa em C que simule o jogo Chega em Zero, conforme regras acima. Seu
programa deve disponibilizar duas modalidades de jogo, a serem selecionadas pelo usuário no
início de cada partida, conforme segue:

1) Player vs Player: modalidade em que o player 1 irá jogar contra o player 2. A cada
rodada, cada jogador decide quantos dados irá rolar e como organizar os números. Tal
escolha não pode permitir que a pontuação do jogador fique negativa. Nesse caso, o
jogador não pontua e passa a vez para o outro jogador. Vence o jogo o jogador que
primeiro alcançar a pontuação zero.

2) Player vs Computador: modalidade em que o player irá jogar contra o computador. O


jogo segue as mesmas regras descritas anteriormente. Nessa modalidade, seu programa
deve realizar automaticamente as jogadas e decisões do computador. Utilize sua
criatividade para a definição das regras adotadas para as tomadas de decisão do
computador de forma a ter uma solução “inteligente”.

As simulações dos dados devem se dar através de funções randômicas e o programa deve,
obrigatoriamente, fazer uso de funções implementadas pelo aluno. Sendo assim, certifique-se de
Laboratório de Programação I Trabalho 3: Programa com repetição (for) e função Profa Patrícia Pitthan

modularizar as funcionalidades do jogo em funções com escopo definido e comportamento


adequado (estrutura e organização do código fazem parte da avaliação!).

Durante a execução, devem ser exibidas, de forma bem organizada, informações sobre o
andamento do jogo, como quem detém a vez de jogar, valor obtido em cada dado, opções de
organização dos números, pontuações intermediárias de cada jogador, dentre outras.

Orientações:

• Dica: uma forma de gerar valores pseudo-aleatórios em seu programa é:


– Incluir as bibliotecas stdlib.h e time.h;
– Especificar a semente (início da função main) com: srand(time(NULL));
– Gerar um valor randômico, entre 0 (incluso) e MAX (não incluso), usando a função
rand();
– obs.: você deve pesquisar sobre o uso das funções srand() e rand(), a fim de utilizá-
las no seu programa.
• O trabalho é individual.
• A interpretação da especificação do trabalho faz parte da avaliação.
• Apenas podem ser utilizados os conteúdos abordados na disciplina de Laboratório de
Programação I até a data de 18/11/2021.
• O código deve estar organizado, indentado e obedecer criteriosamente à especificação.
• Deve-se evitar o uso de trechos redundantes de código, os quais podem ser resolvidos
com o auxílio de funções. Esse quesito também será alvo de avaliação.
• Certifique-se de compilar e testar exaustivamente seu programa antes do envio.
• O programa deve ser salvo com o nome t3-for.c.
• O programa deve ser realizado e entregue até às 23h:55m do dia 25/11/2021, pelo
Moodle.
• Não serão aceitos trabalhos entregues fora da plataforma Moodle. Não serão aceitos
trabalhos fora do prazo estabelecido.
• Trabalhos total ou parcialmente copiados receberão nota zero.
• Os trabalhos que não obedecerem essa especificação serão desconsiderados.

Você também pode gostar