Projeto Individual - Em busca do tesouro perdido#
Data de Entrega: 21/09 (quarta-feira) até 21hrs
A entrega do projeto deverá ser feita via Blackboard
Introdução#
Neste projeto individual o seu objetivo é desenvolver uma versão adaptada e simplificada do jogo Tesouro Inca. Neste jogo, o jogador é um aventureiro explorando ruínas de um templo antigo em busca de tesouros antigos. A cada rodada, o aventureiro precisa decidir se continua a explorar a caverna ou se deseja finalizar a exploração e sair da caverna por conta dos perigos.
Objetivo#
Conseguir o maior número de pontos.
Regras Básicas#
A versão básica deste jogo deve ser jogada com 2 jogadores. Ou seja, não há a disponibilidade de jogar no modo sigle player.
O jogo acontece em várias rodadas até que todos os jogadores saiam seguros da caverna ou a caverna desabe. No início do jogo todos entram na caverna e a partir deste momento os jogadores devem decidir o momento certo de sair ou continuar explorando as ruínas.
Cada rodada#
Etapa 1#
No começo de cada rodada é feito um sorteio para verificar se os jogadores encontrarão tesouros ou perigo.
-
Tesouros: Caso seja sorteado um tesouro, este será dividido igualmente entre os jogadores que estiverem explorando (jogadores que sairam não recebem esta recompensa). O tesouro poderá vir em quantidades de
1
a15
. Este valor deve ser dividido igualmente entre os jogadores. Se não for possível dividir igualmente, os tesouros que sobrarem devem ficar no caminho.Exemplo: se houver
2
jogadores explorando e forem descobertos7
tesouros, cada jogador recebe3
tesouros. Sobrará1
tesouro que será deixado no caminho. -
Perigo: Caso seja um perigo, podem ocorrer duas coisa:
- Se for a primeira vez que o perigo aparece, então não ocorre nada.
- Se for a segunda vez que o perigo aparece, então todos os jogadores que estavam explorando perdem os tesouros encontrados. Os jogadores que saíram em segunraça ficam com os pontos adiquiridos. E o jogo se encerra.
Obs.: As chances de aparecer um tesouro ou perigo são iguais.
Etapa 2#
Se o jogo não tiver finalizado por perigo (descrito no item anterior), então a rodada finaliza e começa uma nova rodada. Antes do início da próxima rodada, os jogadores devem decidir se continuam explorando ou se desejam voltar para o acampamento em segurança.
- Se um ou mais jogadores decidem parar de explorar, então eles dividem os tesouros deixados pelo caminho. Se não for possível dividir os tesouros igualmente, os tesouros que sobraram continuam largados pelo caminho. Os jogadores que pararam com a exploração pontuam o número de pontos equivante ao valor de tesouros adquiridos e não recebem nenhum tesouro das explorações futuras. Além disso, o jogador não pode retornar para as ruínas.
Note que o jogo deve perguntar para todos os jogadores se desejam permanecer explorando ou desejam retornar de forma secreta, pois a decisão de um jogador pode influenciar a decisão do proximo jogador. Para evitar que a escolha do jogador fique registrada no terminal, você deve utilizar a função getpass.getpass
(para mais detalhes visite: getpass.
Fim da rodada#
Uma rodada pode acabar de duas formas:
- Quando todos os jogadores tiverem voltado para o acampamento em segurança.
- Quando a segunda carta de perigo é encontrada.
Simulando o jogo#
Para auxiliá-los no desenvolvimento deste jogo, vamos simular algumas etapas e apresentar um exemplo de como ficaria a implementação deste jogo para a versão para terminal.
Iniciando o Jogo#
Ao iniciar o jogo, apresente alguma mensagem introdutória para os jogadores. O jogo inicia com os jogadores já entrando nas ruínas do templo para explorar, desta forma, nesta etapa inicial não é necessário perguntar se os jogadores desejam explorar ou voltar para o acampamento. Estas perguntas devem ser feitas no início da próxima rodada.
Encontrando tesouros#
Abaixo temos um exemplo em que os dois jogadores decidiram permanecer explorando e encontraram 15 tesouros. Cada um ficou com 7 tesouros e um tesouro foi deixado para trás.
Encontrando Perigo#
Abaixo temos um exemplo em que os jogadores encontraram um perigo.
Encontrando Perigo pela segunda vez#
Abaixo temos um exemplo em que os jogadores já haviam encontrado com um perigo em alguma rodada anterior e encontraram com o perigo pela segunda vez. Desta forma o jogo finaliza. Os jogadores que ainda estavam explorando perdem todo o tesouro que tinha e somente os jogadores que conseguiram voltar em segurança para o acampamento pontuam.
Observação 1
Note que os exemplos acima não mostraram todos os cenários possíveis, nem todas as interações necessárias. Quando algum dos jogadores decidir voltar para o acampamento, o jogo deve parar de perguntar para este jogador se ele deseja explorar ou retornar. Além disso, se os dois jogadores retornaram para o acampamento o jogo deve finalizar.
Regras Avançadas#
Abaixo são descritas algumas regras avançadas. Comece a implementá-las somente depois que finalizar a versão básica do jogo.
Regra Avançada - 5 Ciclos#
A versão básica do jogo possui somente 1 ciclo. 1 ciclo é composto por várias rodadas e finaliza quando todos os jogadores voltam para o acampamento ou 2 perigos são revelados. Na versão básica do jogo isso significava o fim do jogo, mas agora significa somente o fim de um ciclo.
Ao fim do ciclo, os jogadores que conseguiram voltar para o acampamento pontuam. E a cada ciclo, essa pontuação é somada a pontuação anterior. Agora, o objetivo é conseguir o maior número de pontos dentro dos 5 ciclos.
Regra Avançada - 5 Perigos#
A versão básica do jogo possuía somente um tipo de perigo. Com a regra avançada 5 Perigos, o jogo terá 5 perigos diferentes:
- Deslizamento de pedra
- Cobras
- Múmias
- Aranhas
- Fogo
Com a adição de tipos diferentes de perigos, um ciclo só finaliza quando 2 perigos do mesmo tipo são encontrados.
Exemplo: Para a sequência de encontros em um clico:
Jogadores encontram 10 tesouros
Tome cuidado! Houve um deslizamento de pedra.
Tome cuidado! Houve vocês encontraram cobras pelo caminho.
Tome cuidado! Houve um deslizamento de pedra.
Ao encontrar com o perigo Deslizamento de pedra
e Cobras
o ciclo não finaliza. Somente quando o segundo encontro do tipo Deslizamento de pedra
aparece é que o ciclo se finaliza.
Atenção 2
Lembre que as chances de encontrar um tesouro ou um perigo são iguais. Ou seja, existe uma chance de 50% de encontrar um tesouro ou 50% de encontrar um perigo.
Além disso, as chances para cada tipo de perigo são iguais de ocorrer.
Regra Avançada - Tesouro Perdido#
Para esta regra avançada, contaremos com a presença de tesouros perdidos. A cada ciclo, os jogadores tem a chance de encontrar um tesouro perdido enquanto exploram as ruínas. Um tesouro perdido equivale a 5
tesouros nos 3
primeiros ciclos e passa a valer 10
nos 2
últimos ciclos. Porém somente um jogador pode sair com o tesouro.
Quando os jogadores encontram um tesouro, este fica no caminho. O primeiro jogador a voltar para o acampamento sozinho leva o tesouro. Ou seja, se dois jogadores decidirem retornar ao acampamento na mesma rodada ninguém leva o tesouro.
Exemplo 1:
Jogadores encontram **O Tesouro Perdido**!!
Jogador 1 você deseja continuar [1] ou sair [2]?
Escolha: 2
Jogador 2 você deseja continuar [1] ou sair [2]?
Escolha: 2
Ninguém levou **O Tesouro Perdido**!!
Exemplo 2:
Jogadores encontram **O Tesouro Perdido**!!
Jogador 1 você deseja continuar [1] ou sair [2]?
Escolha: 2
Jogador 2 você deseja continuar [1] ou sair [2]?
Escolha: 1
Jogador 1 levou **O Tesouro Perdido**!!
Obs.: Lembre que ao voltar para o acampamento, além do Tesouro Perdido
, podem ter outros tesouros deixados pelo caminho.
Ou seja, esses tesouros devem ser levados/divididos entre os jogadores.
Rubrica#
O seu jogo vai interagir com o jogador através do terminal, então é importante sempre manter o jogador informado com relação a quantidade de tesouros encontrados ou se um perigo foi encontrado.
CONCEITO I#
- Não implementou nenhuma das regras básicas do jogo.
- O jogo não possui um loop principal onde é possível jogar rodadas consecutivas.
CONCEITO D#
- Foram implementados algumas funcionalidades do jogo, porém algumas regras do jogo não foram implementadas.
- O jogo apresenta algum erro de execução que não possibilita testá-lo.
- O jogo apresenta comportamentos indesejados. (exemplo: não respeitar alguma escolha do jogador, atualizar as informações do jogo de forma incorreta, ou apresentar algum outro comportamento inesperado).
CONCEITO C#
- Implementou todas as regras básicas do jogo.
- Jogo descreve em detalhes o que está acontecendo em cada rodada, sempre mantendo o jogador informado acerca das informações relacionadas a quantidade de tesouros e perigos encontrados.
- Nos momentos em que o jogo pede para o jogador inserir alguma informação, o jogo sempre deixa claro as opção do jogador e o que o jogador deve digitar.
CONCEITO B#
- Atingiu o nível C e mais os itens listados abaixo.
- Código utiliza bons nomes de variáveis e funções facilitando a legibilidade do código.
- Código utiliza comentários para descrever alguns trechos de código.
- Faz a validação das entradas do usuário.
- Ao término do jogo, o jogador tem a opção de reiniciar a jogo. (Note que o passo de reiniciar o jogo deve ser feito sem parar a execução do código.)
CONCEITO A#
- Atingiu o nível B e mais os itens listados abaixo.
- Implementou o modo multiplayer para mais de 2 jogadores. Para este item, o jogo deve perguntar a quantidade de jogadores desejada.
- Implementou a Regra Avançada - 5 Ciclos
CONCEITO A+#
- Atingiu o nível A e mais os itens listados abaixo.
- Implementou a Regra Avançada - 5 Perigos
- Implementou a Regra Avançada - Tesouro Perdido