Trabalho
Estrutura de Dados – Glauber Costa
Valor: 20 pontos
Entrega: 18/09/2014 via AdX (exclusivamente)
Este trabalho consiste na criação de um Campo Minado, jogo muito popular criado por
Robert Donner em 1989 que tem como objetivo revelar um campo de minas sem que nenhuma bomba seja detonada.
A implementação deve seguir as regras do Jogo e atingir todos os objetivos descritos abaixo.
Regras do Jogo
A área de jogo consiste num campo de quadrados retangular, que pode ser representado através de uma matriz M x N. Ao se referir ao endereço de determinada posição dentro da matriz podem acontecer as seguintes situações:
Encontrar uma bomba;
Encontrar um espaço vazio;
Encontrar um valor que indicará o número de bomba(s) existe(m) nas adjacências da
posição.
Ganha-se o jogo quando todos os quadrados que não tem minas são revelados.
Opcionalmente, o jogador pode marcar qualquer posição ainda não revelada como mina, utilizando uma bandeira, ou ainda pode marcar qualquer posição não revelada como uma dúvida, utilizando uma interrogação.
Objetivos do Trabalho
1) Definir uma estrutura (ou seja, utilizar typedef ) para representar as posições do tabuleiro do jogo. Nesta estrutura deve-se poder armazenar as seguintes informações:
a) Se a posição contém uma mina;
b) Se a posição contém uma bandeira;
c) Se a bomba contém uma dúvida;
d)
Qual o número de bombas adjacentes àquela posição.
2) Utilizar somente vetores e matrizes alocados dinamicamente;
3) Criar dinamicamente o tabuleiro, através da indicação de quantas linhas e colunas o usuário
deseja;
4) Perguntar ao usuário a quantidade de bombas e distribuí-las aleatoriamente no tabuleiro. O número de bombas não poderá ultrapassar a 40% do número de posições do tabuleiro e não pode ser menos que 20% do número de posições do tabuleiro;
5) Sempre sortear as posições onde as bombas serão lançadas;
6) Solicitar ao usuário posição (linha e coluna) onde ele deseja