Universidade Federal do Espírito Santo Centro Tecnológico Trabalho Computacional Jogo da Forca PET Engenharia de Computação
1. Introdução: Você será responsável por implementar o Jogo da Forca como trabalho para conclusão do segundo módulo do curso Introcomp. O jogo da forca é um jogo que consiste em tentar acertar uma palavra escolhida, em que a única informação inicial é a quantidade de letras desta palavra. Em algumas variações do jogo ainda é fornecida uma dica acerca da palavra, como por exemplo uma categoria na qual a palavra se encaixa. 2. Especificação: O seu programa deverá ser capaz de simular um jogo de forca seguindo as seguintes etapas: Ao iniciar o jogo será necessário cadastrar dois jogadores, sendo necessário informar apenas o nome, sendo necessário criar um TAD para Jogador; Depois do cadastro, o programa deve exibir um menu com 3 opções: Nova Partida, Ranking e Sair do Jogo. Segue abaixo um exemplo de menu; MENU: 1- Nova Partida 2- Ranking 3- Sair do Jogo Opção: Quando escolhida a primeira opção, ou seja, quando o usuário digitar 1 o jogo deve exibir uma mensagem indicando o início de uma nova partida. Nesse momento também será necessário ler um arquivo de texto chamado palavras.txt onde se encontram as palavras e suas respectivas dicas, para serem utilizadas no jogo. A primeira linha do arquivo de texto contém um inteiro N indicando o número de palavras contidas nele, e em seguida N pares de linhas contendo a palavra e sua respectiva dica em cada linha. Também é necessário criar um TAD para Palavra. Abaixo um exemplo do arquivo de texto; Número N Palavra 1 Dica 1 Palavra 2 Dica 2 Palavra 3 Dica 3 Palavra 4 Dica 4 Palavra 5 Dica 5 5 CARRO Meio de locomoção AZUL Cor BANANA Fruta OLA Saudação CACHORRO Animal
Depois da leitura do arquivo de palavras, é necessário exibir quantas palavras foram encontradas, e em seguida perguntar aos jogadores o número de palavras para aquela partida (o número escolhido não deve ultrapassar a quantidade de palavras do arquivo de texto); Sabendo a quantidade de palavras a partida é iniciada, sendo exibido no terminal qual jogador está jogando no momento (mostrando o nome), seguido do desenho da forca vazia, da palavra codificada em _, a dica e um espaço para exibir as tentativas (letras já escolhidas). Palavra: Tentativas: Escolha uma letra: As palavras da partida são escolhidas aleatoriamente entre as palavras registradas. Uma palavra não pode se repetir mais de uma vez por partida. (dica: pesquise sobre como gerar valores aleatórios em C ). A partir desse momento o seu programa será responsável por ler uma letra digitada ( apenas letras maiúsculas ) pelo jogador e verificar a existência da letra na palavra. Caso ela exista, deve ser substituída em todas as ocorrências na palavra codificada. Caso não exista, ela deve ser adicionada no campo de tentativas, e uma parte do corpo do boneco deve ser adicionado ao desenho da forca. Os jogadores revezam entre si digitando as letras, ou seja, depois que o primeiro jogador digita uma letra é a vez do segundo jogador e assim por diante até que as letras da palavra terminem. Cada jogador contabiliza pontos ao acertar: 10 pontos para cada ocorrência da letra. O número máximo de erros permitido durante uma rodada da partida é 6: 1 para a cabeça, 1 para cada braço, 1 para o corpo e 1 para cada perna. Quando ocorre forca, a partida continua com a palavra seguinte.
Abaixo está um exemplo do terminal depois que o primeiro jogador escolhe a letra A e acerta, e o segundo escolhe a letra C e erra; O Palavra: _ A _ A _ A Tentativas: C Escolha uma letra: A forca completa deve ter a seguinte forma: Em forma de texto Em forma de matriz _ O /\ / \ O / \ / \ Assim que as palavras da partida acabam, o programa deve ser redirecionado para o menu inicial. A segunda opção do menu é o Ranking, onde deve ser exibido os jogadores e suas respectivas pontuações em ordem decrescente de pontuação. É necessário incluir também uma opção para retornar ao menu.
Abaixo está um exemplo desse ranking: RANKING #1 Natalia - 110 pontos #2 Pedro - 90 pontos ENTER para retornar ao MENU: A terceira opção do menu é Sair do Jogo, em que é necessário apenas encerrar o programa normalmente. cada): 3. Pontuação Extra Este trabalho possui 5 funcionalidades que contam como pontos extras (1 ponto 1. Possibilidade de cadastrar mais de 2 jogadores, ou seja, ao iniciar o jogo deve se perguntar quantos jogadores serão cadastrados, e em seguida informar os nomes dos jogadores; 2. Nova opção no menu para inserir mais palavras no arquivo palavras.txt, sendo necessário informar também a dica dessa palavra. MENU: 1- Nova Partida 2- Ranking 3- Cadastrar nova palavra 4- Sair do Jogo Opção: CADASTRAR NOVA PALAVRA PALAVRA: DICA:
3. Chutar uma palavra inteira durante uma partida do jogo (ao invés de apenas uma letra por vez). Nesse caso a pontuação somada é calculada de acordo com o número de letras restantes. No exemplo abaixo a jogadora recebe 30 pontos após chutar a palavra BANANA. O Palavra: _ A _ A _ A Tentativas: L Escolha uma letra ou palavra: BANANA 4. Possibilidade de chutar letras maiúsculas e também minúsculas. Mas na hora de exibir as letras no campo Palavra e Tentativas elas devem continuar maiúsculas. 5. Colocar as letras no campo Tentativas em ordem alfabética. O exemplo abaixo mostra a situação do jogo depois de serem digitadas as letras L, C, J, P e Q (nesta ordem). O /\ / Palavra: _ A _ A _ A Tentativas: C J L P Q Escolha uma letra ou palavra:
4. Entrega A entrega deverá ser feita pelo run.codes até às 23:59 do dia 05/12. O arquivo enviado deve ser no formato (.zip) com o nome do arquivo primeronome_sobrenome_matricula. Por exemplo isabel_bustamante_190.zip A correção será feita manualmente. Casos identificados como Plágio, tanto da internet como entre trabalhos de outros alunos receberão nota 0. A nota máxima possível para o trabalho é de 15 pontos (contabilizando todos os pontos extras) sendo 10 pontos referentes às funcionalidades básicas do jogo descritas no no segundo tópico deste arquivo. Haverá uma aula destinada a tirar dúvidas do trabalho no dia 01/12, sendo extremamente importantes que já tenham começado o trabalho antes dessa aula. O conteúdo necessário para a realização do trabalho ainda não foi completamente abordado no curso, porém já é possível iniciá-lo e complementar de acordo com que o conteúdo é passado. E lembre-se, programação se aprende programando! Bom trabalho.