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); }
private bool sprawdzCzyMat(int xAtakujacego, int yAtakujacego, int xKrola, int yKrola) { if (plansza.ZwrocWszystkieMozliweRuchy(pola[xKrola, yKrola].ZwrocGracza()).Count == 0) { return(true); } else { return(false); } }