Campo Minado em Java
Vamos agora explicar, em detalhes, como fazer, entender e programar toda a lógica de um campo minado na linguagem de programação Java.
O código do jogo se encontra em nosso artigo passado de nosso curso online de Java:
Jogo: Campo Minado em Java
Dividimos o jogo em 3 classes, a 'campoMinado' que simplesmente contém a main e cria um objeto do tipo 'Jogo', temos a classe 'Jogo' que irá ministrar toda a lógica e fluxo do jogo e finalmente a classe 'Tabuleiro', que irá gerar os tabuleiros (de minas e visualização) bem como os métodos que lidam com os tabuleiros.
Campo Minado em Java: A classe Tabuleiro.java
Essa classe é a responsável pelo tabuleiro e os métodos que o envolvem.
Na verdade, vamos lidar com dois tabuleiros:
- int[][] minas
Esse tabuleiro é inicialmente preenchido com números '0', através do método 'iniciaMinas()'.
Após isso, vamos sortear 10 locais para colocar as minas, através do método 'sorteiaMinas()'. Nos locais onde existirem minas, vamos colocar o inteiro '-1'.
Esse método sorteia dois números inteiros, entre 1 e 8, através do uso da classe Random. Vamos fazer isso com um looping do while, que a cada iteração vai checar se naquela posição sorteada já existe o número '-1'. Se aquele local já tiver sido sorteado, o booleano 'sorteado' ficará como true e o looping irá se repetir, até que tenhamos 10 locais diferentes com o número '-1'.
Depois disso, vamos preencher as dicas, ou seja, vamos colocar em cada bloco desse tabuleiro o número de minas que existem ao redor.
Assim, se uma posição do tabuleiro tiver o número '2', é porque existem duas minas ao redor daquele bloco.
Fazemos isso apenas contando quantas bombas existem ao redor de cada bloco.
Criamos, na verdade, uma matriz 10x10, onde não usaremos a linha 0 nem a linha 9, bem como a coluna 0 e a coluna 9. Por que isso?
Para que, ao calcular quantas bombas existem na vizinhança, apenas contemos quantas bombas existem nos 8 locais ao