Skip to content

Instantly share code, notes, and snippets.

@zokis
Created July 10, 2012 17:39
Show Gist options
  • Save zokis/3084980 to your computer and use it in GitHub Desktop.
Save zokis/3084980 to your computer and use it in GitHub Desktop.
Campo Minado
public class Campo {
int linha;
int coluna;
int[][] matriz;
public Campo(int m, int n){
linha = m;
coluna = n;
matriz = new int[linha][coluna];
}
void insereBombas(int linha, int coluna) {
if(celulaExiste(linha,coluna)){
matriz[linha][coluna] = -1;
int [][] vizinhos = {
{linha-1,coluna},
{linha+1,coluna},
{linha,coluna+1},
{linha,coluna-1},
{linha-1,coluna-1},
{linha+1,coluna+1},
{linha-1,coluna+1},
{linha+1,coluna-1}
};
for(int[] i: vizinhos){
if(celulaExiste(i[0],i[1])){
if(!eBomba(i[0],i[1])){
matriz[i[0]][i[1]]++;
}
}
}
}
}
public boolean eBomba(int linha, int coluna) {
return matriz[linha][coluna] == -1;
}
public boolean celulaExiste(int linha, int coluna) {
return (linha<this.linha && coluna<this.coluna) && (linha > -1 && coluna > -1);
}
public static void main(String[] args) {
Campo campoMinado1 = new Campo(9,9);
Campo campoMinado2 = new Campo(9,9);
campoMinado1.insereBombas(0, 0);
campoMinado1.insereBombas(0, 1);
campoMinado1.insereBombas(1, 0);
campoMinado1.insereBombas(2, 0);
campoMinado1.insereBombas(2, 8);
campoMinado1.insereBombas(8, 3);
campoMinado1.insereBombas(5, 5);
campoMinado1.insereBombas(6, 6);
campoMinado1.insereBombas(7, 6);
campoMinado1.insereBombas(7, 7);
campoMinado2.insereBombas(1, 1);
campoMinado2.insereBombas(2, 1);
campoMinado2.insereBombas(3, 1);
campoMinado2.insereBombas(1, 2);
campoMinado2.insereBombas(1, 3);
campoMinado2.insereBombas(2, 3);
campoMinado2.insereBombas(3, 2);
campoMinado2.insereBombas(3, 3);
campoMinado2.insereBombas(7, 7);
campoMinado2.insereBombas(8, 8);
Campo campoMinado = campoMinado1;
for(int m = 0; m < campoMinado.linha; m++){
String linha = "";
for(int n = 0; n < campoMinado.coluna; n++){
if(campoMinado.matriz[m][n] == -1)
linha += "* ";
else if((campoMinado.matriz[m][n] == 0))
linha += " ";
else
linha += campoMinado.matriz[m][n]+" ";
if(n == campoMinado.coluna)
linha += "\n";
}
System.out.println(linha);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment