Example #1
0
        //Algortmo de resolucion del laberinto
        public Point moveAgent(params Point[] directions)
        {
            if (Recorrido.Count == 1)
            {
                Recorrido.Push(directions[0]);
                CeldasVisitadas.Add(directions[0]);
                return(directions[0]);
            }
            else
            {
                foreach (Point punto in directions)
                {
                    if (!CeldasVisitadas.Contains(punto))
                    {
                        CeldasVisitadas.Add(punto);
                        Recorrido.Push(punto);
                        return(punto);
                    }
                }
                Recorrido.Pop();
                foreach (Point punto in directions)
                {
                    if (punto.Equals(Recorrido.Peek()))
                    {
                        return(punto);
                    }
                }

                return(end);
            }
        }