/// <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);
        }
Ejemplo n.º 3
0
 public Bloque(Celda Celda) : base(Celda)
 {
 }
Ejemplo n.º 4
0
 public Vacia(Celda Celda) : base(Celda)
 {
 }
Ejemplo n.º 5
0
 public Estado(Celda Celda)
 {
     this.Celda = Celda;
 }