예제 #1
0
        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);
        }
예제 #2
0
 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);
     }
 }