Пример #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
        /// <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);
        }