package clases;

public class MatrizDeAdyacencia {
	
	private boolean[][] matrizDeAdyacencia;
	private Grilla grilla;
	
	
	public MatrizDeAdyacencia(Grilla grilla){
		this.grilla = grilla;
		int tamanio = grilla.getFilas()*grilla.getColumnas();
		this.matrizDeAdyacencia = new boolean[tamanio][tamanio];
	}
	
	public MatrizDeAdyacencia(int tamanio){
		this.matrizDeAdyacencia = new boolean[tamanio][tamanio];
	}

	public boolean[][] getMatrizDeAdyacencia() {
		return this.matrizDeAdyacencia;
	}
	
	private void inicializarMatrizDeAdyacencia(){
		for (int i = 0; i < this.matrizDeAdyacencia.length; i++) {
			for (int j = 0; j < this.matrizDeAdyacencia[i].length; j++) {
				this.matrizDeAdyacencia[i][j] = false;
			}
		}
	}
	
	public void calcularMatrizDeAdyacencia(){
		this.inicializarMatrizDeAdyacencia();
		int numeroDelCuadranteARevisar;
		int numeroCuadranteAMarcarComoDisp;
		int[] posCuadranteARevisar;
		Cuadrante[][] matrizDeCuadrantes = this.grilla.getMatrizDeCuadrantes();
		for (int fila = 0; fila < matrizDeAdyacencia.length; fila++) {
			numeroDelCuadranteARevisar = fila;
			posCuadranteARevisar = this.grilla.obtenerPosicionDeUnCuadrante(numeroDelCuadranteARevisar);
			
			if (this.grilla.verificarDisponibilidadCuadranteActual(posCuadranteARevisar[0], posCuadranteARevisar[1])){
				if(this.grilla.verificarDisponibilidadCuadranteSuperiorIzquierdo(posCuadranteARevisar[0], posCuadranteARevisar[1])){
					numeroCuadranteAMarcarComoDisp = matrizDeCuadrantes[posCuadranteARevisar[0] -1][posCuadranteARevisar[1] -1].getNumero();
					this.matrizDeAdyacencia[fila][numeroCuadranteAMarcarComoDisp] = true;
				}
				
				if(this.grilla.verificarDisponibilidadCuadranteSuperior(posCuadranteARevisar[0], posCuadranteARevisar[1])){
					numeroCuadranteAMarcarComoDisp = matrizDeCuadrantes[posCuadranteARevisar[0] -1 ][posCuadranteARevisar[1]].getNumero();
					this.matrizDeAdyacencia[fila][numeroCuadranteAMarcarComoDisp] = true;
				}
				
				if(this.grilla.verificarDisponibilidadCuadranteSuperiorDerecho(posCuadranteARevisar[0], posCuadranteARevisar[1])){
					numeroCuadranteAMarcarComoDisp = matrizDeCuadrantes[posCuadranteARevisar[0] -1][posCuadranteARevisar[1] +1].getNumero();
					this.matrizDeAdyacencia[fila][numeroCuadranteAMarcarComoDisp] = true;
				}
				
				if(this.grilla.verificarDisponibilidadCuadranteInferiorIzquierdo(posCuadranteARevisar[0], posCuadranteARevisar[1])){
					numeroCuadranteAMarcarComoDisp = matrizDeCuadrantes[posCuadranteARevisar[0] +1][posCuadranteARevisar[1] -1].getNumero();
					this.matrizDeAdyacencia[fila][numeroCuadranteAMarcarComoDisp] = true;
				}
				
				if(this.grilla.verificarDisponibilidadCuadranteInferior(posCuadranteARevisar[0], posCuadranteARevisar[1])){
					numeroCuadranteAMarcarComoDisp = matrizDeCuadrantes[posCuadranteARevisar[0] +1 ][posCuadranteARevisar[1]].getNumero();
					this.matrizDeAdyacencia[fila][numeroCuadranteAMarcarComoDisp] = true;
				}
				
				if(this.grilla.verificarDisponibilidadCuadranteInferiorDerecho(posCuadranteARevisar[0], posCuadranteARevisar[1])){
					numeroCuadranteAMarcarComoDisp = matrizDeCuadrantes[posCuadranteARevisar[0] +1][posCuadranteARevisar[1] +1].getNumero();
					this.matrizDeAdyacencia[fila][numeroCuadranteAMarcarComoDisp] = true;
				}
				
				if(this.grilla.verificarDisponibilidadCuadranteIzquierdo(posCuadranteARevisar[0], posCuadranteARevisar[1])){
					numeroCuadranteAMarcarComoDisp = matrizDeCuadrantes[posCuadranteARevisar[0]][posCuadranteARevisar[1] -1].getNumero();
					this.matrizDeAdyacencia[fila][numeroCuadranteAMarcarComoDisp] = true;
				}
				
				
				if(this.grilla.verificarDisponibilidadCuadranteDerecho(posCuadranteARevisar[0], posCuadranteARevisar[1])){
					numeroCuadranteAMarcarComoDisp = matrizDeCuadrantes[posCuadranteARevisar[0]][posCuadranteARevisar[1] +1].getNumero();
					this.matrizDeAdyacencia[fila][numeroCuadranteAMarcarComoDisp] = true;
				}
			}
			

			
		}

		//return this.matrizDeAdyacencia;
	}
}

@@ -1522,38 +1522,34 @@
 visar%5B1%5D -1%5D.get
-Numero
+Id
 ();%0A%09%09%09%09%09this.ma
@@ -1840,38 +1840,34 @@
 ARevisar%5B1%5D%5D.get
-Numero
+Id
 ();%0A%09%09%09%09%09this.ma
@@ -2167,38 +2167,34 @@
 visar%5B1%5D +1%5D.get
-Numero
+Id
 ();%0A%09%09%09%09%09this.ma
@@ -2496,38 +2496,34 @@
 visar%5B1%5D -1%5D.get
-Numero
+Id
 ();%0A%09%09%09%09%09this.ma
@@ -2818,30 +2818,26 @@
 isar%5B1%5D%5D.get
-Numero
+Id
 ();%0A%09%09%09%09%09thi
@@ -3141,38 +3141,34 @@
 visar%5B1%5D +1%5D.get
-Numero
+Id
 ();%0A%09%09%09%09%09this.ma
@@ -3463,30 +3463,26 @@
 r%5B1%5D -1%5D.get
-Numero
+Id
 ();%0A%09%09%09%09%09thi
@@ -3792,14 +3792,10 @@
 .get
-Numero
+Id
 ();%0A

refactor de nombres de variables