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); }
public void UkonciHledani() { Hriste.VypisHriste(cilX, cilY, startX, startY); Console.WriteLine("\nKonec po {0} krocích", pocetKroku); Console.ReadLine(); }