private RuchAI zwrocNajlepszyRuchZPierwszejPlanszy(Plansza plansza) { List <RuchAI> czarneRuchy = plansza.ZwrocWszystkieMozliweRuchy(Gracz.CZARNE); int min = 1000; RuchAI najlepszyCzarnyRuch = ruch0; foreach (var czarnyRuch in czarneRuchy) { plansza.WykonajRuch(czarnyRuch.x1, czarnyRuch.y1, czarnyRuch.x2, czarnyRuch.y2); List <RuchAI> bialeRuchy = plansza.ZwrocWszystkieMozliweRuchy(Gracz.BIALE); RuchAI najlepszyBialyRuch = bialeRuchy.Max(); if (najlepszyBialyRuch is null) { plansza.kontrolki.znajdzKroli(Gracz.CZARNE); plansza.kontrolki.Sprawdz(); if (plansza.kontrolki.czyMat || plansza.kontrolki.czyPat) { plansza.CofnijRuch(); return(czarnyRuch); } } else if (najlepszyBialyRuch.wartosc < min) { najlepszyCzarnyRuch = czarnyRuch; min = najlepszyBialyRuch.wartosc; } plansza.CofnijRuch(); } Console.Read(); return(najlepszyCzarnyRuch); }
/// <summary> /// Wykonanie ruchu komputera. /// </summary> public void WykonajRuchDlaAI() { RuchAI ruch = ai.ZwrocNajlepszyRuch(plansza); plansza.RuszGlowny(ruch.x1, ruch.y1, ruch.x2, ruch.y2, Gracz.CZARNE); }