Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Disciplina: Programação I
Professor: Diego Brandão
Alunos: Gabriel Damasio Evangelista e Igor Pimentel Guimarã
Introdução
Sumário
Uma função que retorna vazio foi usada para realizar a introdução do jogo. A
tela de boas vindas e as opções de jogar ou sair foram acrescidas nessa
função. Esse bloco também teve o intuito de facilitar a visualização do
programador, enxugando o tamanho do código.
Nessa função foi implementado duas possibilidades de modo de jogo, seja ele
randômico,onde será gerado um campo aleatorio com um numero de bombas
definido pelo usuario, ou o modo definir jogo,onde o usuário escolhe pelo
programa as posições onde deseja que tenha bombas. Neste bloco foi usado o
operador lógico if/else, propondo ao usuário duas opções já citadas neste
mesmo tópico. Caso o usuário escolha uma terceira opção inexistente, o
programa exibirá a seguinte mensagem “Opção invalida digite novamente”.
Ainda nesse bloco é inicializado a variável “b” que também é usada na terceira
função.
Esta função gera uma matriz de char para interface com usuário,onde o
caracter 254 formam quadrados, representando espaços vazios no campo.
Uma função importante para o andamento do jogo, pois ela atualiza a matriz
char informando o número de bombas nas proximidades fazendo uma
interação entre uma matriz de int onde estão armazendas os valores e uma
matriz de char usada para interface com o usuário.
Nessa função é gerado um contador para ver quantos espaços vazios foram
abertos, quando este contador se iguala ao numero de espaço vazios, o
usuário venceu a partida. Repare que a condição do if é o próprio retorno desta
função.
A décima primeira função usada no código foi: void revela(int
mat[][8],int linha,int coluna)
Esta função recursiva revela o campo após cada jogada e também verifica se
as posições adjacentes devem ser reveladas
Essa função tem a serventia de marcar a bandeira no campo com o caracter "-
", de valor 240 na tabela ascii.
Função para o modo "definir jogo" que recebe uma string com as posições de
bomba separadas por "espaço", armazena esta string num bloco de notas
externo, lê o bloco de notas externo, converte as letras para letras minúsculas,
gera um contador de bombas válidas e fecha os arquivos abertos.
Nessa função foi definido o momento em que o usuário escolhe uma posição
que contenha bomba. O jogo é interrompido e a tela pisca em uma sequência
de cores.
A décima sétima função usada no código foi: int dificuldade(int
m,int a,int d)
Após a criação de grande parte do jogo, a maior dificuldade foi ter que prever e
consertar possíveis erros ou inadequações do jogador, além disso, também
houve dificuldades com a função "conta_bomba" visto que o número de
bombas nas proximidades poderia ser 4, assim sendo igual ao número de
posição com bomba na matriz de inteiros, para corrigir isso foi feito com que
esta função se iniciasse no valor 5, assim fazendo com que ela conte ate 13,
pois é o numero de espaços máximo nas adjacências.
Função revela;
Tela de jogo
Campo de jogo revelado
Tela de vitória
Tela de derrota
Conclusão: