public void enlacesConjunto(int i) { List <Cuadro> visitados = new List <Cuadro>(); Posicion posicionAux = new Posicion(); Cuadro cuadroAux = new Cuadro(); Cuadro cuadro = new Cuadro(); cuadro = this.principal.buscarCuadro(i, visitados, cuadroAux); visitados.Clear(); cuadroAux = null; posicionAux.setX(cuadro.getPosicion().getX()); posicionAux.setY(cuadro.getPosicion().getY()); if (cuadro.getEnlaceConjunto().getArriba() == null) { posicionAux.setY(posicionAux.getY() + 1); if (this.principal.buscarCoordenadas(posicionAux, visitados, cuadroAux) != null) { visitados.Clear(); cuadroAux = null; cuadro.getEnlaceConjunto().setArriba(this.principal.buscarCoordenadas(posicionAux, visitados, cuadroAux)); visitados.Clear(); cuadroAux = null; this.principal.buscarCoordenadas(posicionAux, visitados, cuadroAux).getEnlaceConjunto().setAbajo(cuadro); } visitados.Clear(); cuadroAux = null; posicionAux.setX(cuadro.getPosicion().getX()); posicionAux.setY(cuadro.getPosicion().getY()); } if (cuadro.getEnlaceConjunto().getDerecha() == null) { posicionAux.setX(posicionAux.getX() + 1); if (this.principal.buscarCoordenadas(posicionAux, visitados, cuadroAux) != null) { visitados.Clear(); cuadroAux = null; cuadro.getEnlaceConjunto().setDerecha(this.principal.buscarCoordenadas(posicionAux, visitados, cuadroAux)); visitados.Clear(); cuadroAux = null; this.principal.buscarCoordenadas(posicionAux, visitados, cuadroAux).getEnlaceConjunto().setIzquierda(cuadro); } visitados.Clear(); cuadroAux = null; posicionAux.setX(cuadro.getPosicion().getX()); posicionAux.setY(cuadro.getPosicion().getY()); } if (cuadro.getEnlaceConjunto().getAbajo() == null) { posicionAux.setY(posicionAux.getY() - 1); if (this.principal.buscarCoordenadas(posicionAux, visitados, cuadroAux) != null) { visitados.Clear(); cuadroAux = null; cuadro.getEnlaceConjunto().setAbajo(this.principal.buscarCoordenadas(posicionAux, visitados, cuadroAux)); visitados.Clear(); cuadroAux = null; this.principal.buscarCoordenadas(posicionAux, visitados, cuadroAux).getEnlaceConjunto().setArriba(cuadro); } visitados.Clear(); cuadroAux = null; posicionAux.setX(cuadro.getPosicion().getX()); posicionAux.setY(cuadro.getPosicion().getY()); } if (cuadro.getEnlaceConjunto().getAbajo() == null) { posicionAux.setX(posicionAux.getX() - 1); if (this.principal.buscarCoordenadas(posicionAux, visitados, cuadroAux) != null) { visitados.Clear(); cuadroAux = null; cuadro.getEnlaceConjunto().setIzquierda(this.principal.buscarCoordenadas(posicionAux, visitados, cuadroAux)); visitados.Clear(); cuadroAux = null; this.principal.buscarCoordenadas(posicionAux, visitados, cuadroAux).getEnlaceConjunto().setDerecha(cuadro); } visitados.Clear(); cuadroAux = null; posicionAux.setX(cuadro.getPosicion().getX()); posicionAux.setY(cuadro.getPosicion().getY()); } }
public void combinar(Cuadro c, int x, int y) { Random r = new Random(); Posicion posicionAux = new Posicion(); List <Cuadro> visitados = new List <Cuadro>(); Cuadro cuadro = new Cuadro(); int aux = r.Next(3); if (aux == 0) { y += 1; posicionAux.setX(x); posicionAux.setY(y); if (this.enlaceConjunto.getArriba() == null && this.buscarCoordenadas(posicionAux, visitados, cuadro) == null) { this.enlaceConjunto.setArriba(c); c.getEnlaceConjunto().setAbajo(this); c.getPosicion().setX(x); c.getPosicion().setY(y); return; } else { this.enlaceConjunto.getArriba().combinar(c, x, y); } } else if (aux == 1) { x += 1; posicionAux.setX(x); posicionAux.setY(y); if (this.enlaceConjunto.getDerecha() == null && this.buscarCoordenadas(posicionAux, visitados, cuadro) == null) { this.enlaceConjunto.setDerecha(c); c.getEnlaceConjunto().setIzquierda(this); c.getPosicion().setX(x); c.getPosicion().setY(y); return; } else { this.enlaceConjunto.getDerecha().combinar(c, x, y); } } else if (aux == 2) { y -= 1; posicionAux.setX(x); posicionAux.setY(y); if (this.enlaceConjunto.getAbajo() == null && this.buscarCoordenadas(posicionAux, visitados, cuadro) == null) { this.enlaceConjunto.setAbajo(c); c.getEnlaceConjunto().setArriba(this); c.getPosicion().setX(x); c.getPosicion().setY(y); return; } else { this.enlaceConjunto.getAbajo().combinar(c, x, y); } } else { x -= 1; posicionAux.setX(x); posicionAux.setY(y); if (this.enlaceConjunto.getIzquierda() == null && this.buscarCoordenadas(posicionAux, visitados, cuadro) == null) { this.enlaceConjunto.setIzquierda(c); c.getEnlaceConjunto().setDerecha(this); c.getPosicion().setX(x); c.getPosicion().setY(y); return; } else { this.enlaceConjunto.getIzquierda().combinar(c, x, y); } } }
public void setPosicion(Posicion posicion) { this.posicion = posicion; }
public Cuadro() { enlaceVecino = new EnlaceVecino(); enlaceConjunto = new EnlaceConjunto(); posicion = new Posicion(); }