Example #1
0
        public bool DalsiKrok(Smer s)
        {
            pocetKroku++;
            if (X == cilX && Y == cilY)
            {
                UkonciHledani();
                return(true);
            }

            switch (s)
            {
            case Smer.Vpravo:
                Vpravo();
                break;

            case Smer.Dolu:
                Dolu();
                break;

            case Smer.Vlevo:
                Vlevo();
                break;

            case Smer.Nahoru:
                Nahoru();
                break;
            }

            if (debug)
            {
                Hriste.VypisHriste(cilX, cilY, startX, startY);
                Console.WriteLine();
                //Console.ReadLine();
            }

            Smer smer = OptimalniSmer();

            if (smer != Smer.Nikam) // v této cestě nejde pokračovat
            {
                hriste[Y, X] = znacka++;
                DalsiKrok(smer);
            }
            else
            {
                hriste[Y, X] = (int)StavPole.ZavrenePole;
                DalsiKrok(OptimalniUstup(--znacka));
            }
            return(false);
        }
Example #2
0
 public void UkonciHledani()
 {
     Hriste.VypisHriste(cilX, cilY, startX, startY);
     Console.WriteLine("\nKonec po {0} krocích", pocetKroku);
     Console.ReadLine();
 }