Exemplo n.º 1
0
        public void Explorar()
        {
            //inicialmente la celda actual es la 1,1
            Node <Celda> nodoActual = Tablero.getPrimeraCelda();

            DispatcherTimer dispathcer = new DispatcherTimer();
            int             counter    = 0;

            //Intervalo de 1 segundo
            dispathcer.Interval = new TimeSpan(0, 0, 1);
            dispathcer.Tick    += (s, a) => {
                //por cada interaccion obtenemos un registro
                RegistroExploracion registro = Tablero.ExplorarCeldas(nodoActual);
                //añadirmos el registro que obtenemos a la tabla que tendra binding con la tabla de WPF
                //pero debemos evaluar si exite uno, en cuyo caso como ya pasó por ahí no se añade

                if (nodoActual.Value.Recompensa == 100)
                {
                    isFoundRecompensa = true;
                }

                int contador = 0;
                //vamos a ver si el elemento esta en el data grid
                foreach (RegistroExploracionGrid item in TablaExploracion)
                {
                    RegistroExploracionGrid regAux = new RegistroExploracionGrid(registro);

                    if (item.NodoCurrent.Equals(regAux.NodoCurrent) && item.NodoNext.Equals(regAux.NodoNext) &&
                        item.Accion.Equals(regAux.Accion) && item.Recompensa.Equals(regAux.Recompensa))
                    {
                        //si el elemento ya esta en la lista lo borra
                        TablaExploracion.RemoveAt(contador);
                        break;
                    }

                    contador++;
                }

                TablaExploracion.Add(new RegistroExploracionGrid(registro));
                //aqui cambiamos la celda actual a otra...
                nodoActual = registro.NodoNext;

                //hasta que no encuentre el explorador la recomensa no va a parar
                if (counter > 25 && isFoundRecompensa)
                {
                    dispathcer.Stop();
                }

                counter++;
            };

            dispathcer.Start();

            //numero de iteraciones


            //haremos esto una serie de veces hasta finalizar la exploracion
        }
Exemplo n.º 2
0
        /// <summary>
        /// Explorar si que veamos por pantalla
        /// </summary>
        public void ExplorarRapido()
        {
            //inicialmente la celda actual es la 1,1
            Node <Celda> nodoActual = Tablero.getPrimeraCelda();


            int contador = 0;

            while (contador < 25)
            {
                //por cada interaccion obtenemos un registro
                RegistroExploracion registro = Tablero.ExplorarCeldas(nodoActual);
                //añadirmos el registro que obtenemos a la tabla que tendra binding con la tabla de WPF
                //pero debemos evaluar si exite uno, en cuyo caso como ya pasó por ahí no se añade
                int contador2 = 0;
                //vamos a ver si el elemento esta en el data grid
                foreach (RegistroExploracionGrid item in TablaExploracion)
                {
                    RegistroExploracionGrid regAux = new RegistroExploracionGrid(registro);

                    if (item.NodoCurrent.Equals(regAux.NodoCurrent) && item.NodoNext.Equals(regAux.NodoNext) &&
                        item.Accion.Equals(regAux.Accion) && item.Recompensa.Equals(regAux.Recompensa))
                    {
                        //si el elemento ya esta en la lista lo borra
                        TablaExploracion.RemoveAt(contador2);
                        break;
                    }

                    contador2++;
                }

                TablaExploracion.Add(new RegistroExploracionGrid(registro));
                //aqui cambiamos la celda actual a otra...
                nodoActual = registro.NodoNext;

                contador++;
            }
        }