Projeto para a nota da segunda unidade da disciplina Linguagem de Programação.
No Linux, utilizando o GCC Compiller, vá para a pasta que está o arquivo .c e digite o seguinte comando no terminal:
$ g++ -o 'jogo do labirinto' 'jogo do labirinto'.c
Com Windows, utilizando o MinGW, vá para a pasta que está o arquivo .c e digite o seguinte comando no terminal:
$ g++ -o 'jogo do labirinto' 'jogo do labirinto'.c
Pronto! Agora você pode utilizar este jogo.
-
Cada jogador tem 5 Pontos de Vida(HP).
-
O jogador 1 utiliza W, A, S, D para mover-se.
Exemplo:
W – Move o jogador para cima; A – Move o jogador para a esquerda; S – Move o jogador para baixo; D – Move o jogador para a direita.
-
O jogador 2 utiliza 8, 4, 5, 6 para mover-se.
Exemplo:
8 – Move o jogador para cima; 4 – Move o jogador para a esquerda; 5 – Move o jogador para baixo; 6 – Move o jogador para a direita.
-
Armadilha: Retira um Ponto de Vida àquele que pisar nela.
O jogador perderá 1 Ponto de Vida ao entrar numa armadilha.
Após o jogador entrar naquela armadilha, ela desaparece.
Ex: Armadilha –> *P1*
-
Tocha: Ilumina um elemento às suas verticais e horizontais.
Um elemento à cima, à direita, à esquerda e abaixo serão revelados.
Ex: Tocha –> &P1&
- Ficar vivo até encontrar o tesouro(ou gold).
- Encontrar o tesouro primeiro que o adversário. Ex: O jogador que encontrar o tesouro primeiro ganha.
- Não morrer antes do adversário. Ex: O jogador que morrer primeiro, automaticamente o outro ganha.
-
Abaixo do Mapa, mostrar as informações dos jogadores.
Exemplo:
PLAYER I PLAYER II HP: 5/5 HP: 5/5
-
Ao terminar o turno de um jogador, tem que avisar quem irá jogar posteriormente.
Exemplo:
-> Player I pode andar 3 casas -> Player I pode dar mais 2 passos... -> Player I Pode dar mais 1 passo... -> Player II pode andar 7 casas -> Player II pode dar mais 6 passos e etc...
-
Ao pisar numa armadilha.
Exemplo:
Player I pisou numa armadilha, perdeu 1 Ponto de Vida(HP).
-
Ao encontrar uma tocha.
Exemplo:
Player I encontrou uma tocha.
Sobre a construção do jogo – Criação do código
-
Como decidir onde ficará cada elemento – TEM DE SER ALEATÓRIO:
#include <stdlib.h> /* Para a função rand() e srand() */ rand(); /* -> Retorna um valor aleatório. */ rand() % x; /* -> Retorna um valor que vai de 0 à X-1 */
-
Para tudo ser realmente aleatório, é necessário fazer o seguinte:
#include <time.h> /* Para a função time */ srand(); /* -> Alterar o valor semente da função rand(). */
-
Receberá como argumento o retorno da função time(NULL)
Exemplo:
srand(time(NULL));
– Detalhe: Só precisa fazer isso UMA VEZ no programa, logo no início do main.
-
Precisa de um símbolo indicando o ponto de partida.
1.1. Ex:
<>
–> Indicará de onde aquele jogador deu partida.1.2. Ex:
[01][01] - Ponto inicial do jogador 1. [01][10] - Ponto inicial do jogador 2.
-
Matriz 10x10.
-
Armadilhas(TRAP): Podem existir até 32 armadilhas(de 0 à 32).
Em cada elemento da matriz[i][j], testar a chance de 25% de conter uma armadilha(trap) naquele elemento.
Ex: Se for sorteado qualquer número entre de 1 à 25, colocar uma armadilha.
-
Tochas(FIRE): Podem existir até 5 tochas(de 0 à 5). Em cada elemento, testar a possibilidade de 15% de conter uma tocha(fire).
Ex: Se for sorteado qualquer número entre 1 à 15, colocar uma tocha. Se cair qualquer numero de 1 à 25, colocar um fire.
-
Tesouro(OURO ou GOLD): Pode existir 1, e somente 1 ouro, chance de 1%. Pode estar em qualquer lugar a partir da segunda linha.
Ex: Não pode estar na primeira linha, ou seja, da segunda para baixo. Exceções descritas nos Bônus
-
Ordem de preencher os elementos:
6.1. De cima para baixo ou de baixo para cima, fica à critério do programador.
Você começa com 10 e perde pontos se:
-
Não executou as armadilhas corretamente:
-2,0 pontos
.Ex: Esqueceu de colocar as traps, ou tirar ponto de vida do jogador.
-
Não executou as tochas corretamente:
-2,0 pontos
.Ex: Mesmos princípios das armadilhas.
-
Não executou o tesouro corretamente, mesmos princípios das armadilhas: -1,0 ponto.
Ex: Na partida não teve nenhum tesouro, ou a partida não encerrou quando o tesouro foi encontrado.
-
Não colocou as mensagens corretamente – as ações do jogo:
-2,0 pontos
.- Ex: Quantas casas ainda tem para movimentar.
- Ex: Ao cair numa armadilha – portanto, perdeu um ponto de vida(HP).
- Ex: Ao encontrar uma tocha.
- Ex: Ao encontrar o tesouro.
- Ex: Dizer quem ganhou.
-
Não fez corretamente o desenho do labirinto:
-1,0 ponto
.Detalhe: Não precisa ser o labirinto perfeito, o mais bonito do mundo.
- Ex: Os jogadores tem de ser capazes de identificar visualmente tudo que está acontecendo.
- Ex: Esquecer de mostrar os jogadores = ERRO.
-
Não fez as validações corretas de fim de jogo:
-2,0 pontos
.- Ex: Se algum jogador perdeu todos os pontos de vida, a partida tem que acabar.
- Ex: Se algum jogador encontrou o tesouro, a partida tem que acabar.
BÔNUS - para recuperação da primeira unidade
-
Se o programa permitir que os jogadores escolham a posição inicial, sendo um destes 4 pontos.
1.1. Ex:
[01][01] [01][10] [10][01] [10][10]
1.2 Detalhe: Nesta versão, o tesouro tem de ficar a partir da linha 2 e até a linha 9.
-
Se utilizar Mult-Thread: Permitir aos dois jogadores jogarem ao mesmo tempo. 2.1. DETALHE: UTILIZANDO MULT-THREAD.
2.2. DETALHE: Os jogadores NÃO PODEM começar do mesmo ponto.
-
Se permitir 4 jogadores jogarem ao mesmo tempo.
NÃO DEVE-SE UTILIZAR VARIÁVEIS GLOBAIS