public static Ruch ObliczRuch() { var start = DateTime.Now; var ruchPamiec = plansza.CzyJestWolneMiejsceNaPlanszy(rozm); plansza.ZnajdzWszystkieMozliwosciRuchu(start); if (drzewo == null) { drzewo = plansza.ZbudujDrzewo(start); if (drzewo != null) { drzewo.korzeń.OszacujSzanse(start); } } if (drzewo != null) { var optymalny = drzewo.ZnajdzOptymalnyRuch(plansza, start); if (optymalny != null) { return(optymalny); } } return(ruchPamiec); }
public Drzewo ZbudujDrzewo(DateTime start) { var drzewo = new Drzewo(new Węzeł(null, null, SkopiujPole(this), Węzeł.Strona.przeciwnik)); drzewo.korzeń.DodajDzieci(start); var czas = DateTime.Now - start; return(drzewo); }