/// <summary> /// /// </summary> /// <param name="X"></param> /// <param name="Y"></param> public Tablero(int dimX, int dimY) { InitializeComponent(); graph = new Canvas(); graph.Width = dimX * 100; graph.Height = dimY * 100; graph.HorizontalAlignment = HorizontalAlignment.Left; graph.VerticalAlignment = VerticalAlignment.Top; tablet.Children.Add(graph); this.dimesionX = dimX; this.dimensionY = dimY; GrafoTablero = new Graph <Celda>(); for (int i = 1; i <= dimX; i++) { for (int j = 1; j <= dimY; j++) { //aqui crea los nodos y los inserta al tablero Celda celda = new Celda(i, j); Node <Celda> nodo = new Node <Celda>(celda); GrafoTablero.InsertarNodo(nodo); //obtengo la lista List <Node <Celda> > listaNodos = GrafoTablero.getListaNodos(); //recorremos todos los los nodos foreach (var item in listaNodos) { Celda celdaAux = item.Value; if (celdaAux.Fila == i && celdaAux.Columna == j - 1) { GrafoTablero.InsertarArco(nodo, item, 1); //el uno es coste del arco que no lo usamos. } else if (celdaAux.Fila == i - 1 && celdaAux.Columna == j) { GrafoTablero.InsertarArco(nodo, item, 1); //el uno es coste del arco que no lo usamos. } } } } //añadimos las celdas... BuildCeldas(); }
/// <summary> /// devuelve la celda 1,1 de la que partimos siempre- /// </summary> /// <returns></returns> public Node <Celda> getPrimeraCelda() { //obtengo toda la lista de nodos Celda celda = null; List <Node <Celda> > listaNodos = GrafoTablero.getListaNodos(); //recorro todos los nodos foreach (Node <Celda> nodo in listaNodos) { celda = nodo.Value; if (celda.Fila == 1 && celda.Columna == 1) { return(nodo); } } return(null); }
public Bloque(Celda Celda) : base(Celda) { }
public Vacia(Celda Celda) : base(Celda) { }
public Estado(Celda Celda) { this.Celda = Celda; }