Ejemplo n.º 1
0
 public Astar(Quadrado o, Quadrado d, Cubo c)
 {
     origem   = o;
     estado   = null;
     destino  = d;
     cubo     = c;
     fechados = new List <Quadrado>();
     aberto   = new List <Quadrado>();
 }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            int tam = 0;

            Console.Write("Tamanho do cubo (Ex: 3) : ");
            tam = Convert.ToInt32(Console.ReadLine());

            Cubo cubo = new Cubo(tam);

            Console.WriteLine("65% de obstaculos gerados: ");
            cubo.GeraObstaculos();
            cubo.Obstaculos.ForEach(n => Console.WriteLine(n.pos));
            Console.WriteLine("Posição inicial: ");
            Quadrado q = Posicao(cubo.Obstaculos, tam);

            Console.WriteLine("Destino: ");
            Quadrado q1 = Posicao(cubo.Obstaculos, tam);

            Astar astar = new Astar(q, q1, cubo);

            astar.AstarEncontra();
            Console.WriteLine("----------------------------------------");
            Console.WriteLine("Tamanho do cubo: " + tam);
            Console.WriteLine("Obstaculos: ");
            cubo.Obstaculos.ForEach(n => Console.WriteLine("  " + n.pos));
            Console.WriteLine("Posicao inicio - : " + astar.Origem.pos);
            Console.WriteLine("Posicao destino - : " + astar.Destino.pos);
            Console.WriteLine("Custo total - : " + astar.Estado.Custo);
            Console.WriteLine("Caminho percorrido :");

            if (astar.Estado.pos.Equals(astar.Destino.pos))
            {
                Console.WriteLine("Possui solução desta origem");
            }
            else
            {
                Console.WriteLine("Não possui solução desta origem");
            }

            astar.Estado.ExibeCaminho(astar.Estado);
            Console.ReadKey();
        }