예제 #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
 public MainWindow(bool czyGraKomputer)
 {
     plansza             = new Plansza(czyGraKomputer);
     this.czyGraKomputer = czyGraKomputer;
     if (czyGraKomputer)
     {
         ai = new AI();
     }
     InitializeComponent();
     utworzPola();
     wczytajObrazkizPlikow();
     rysujPlansze();
 }
        private void wczytajGreButton_Click(object sender, RoutedEventArgs e)
        {
            WczytajWindow oknoWczytywania = new WczytajWindow();

            oknoWczytywania.ShowDialog();
            Plansza plansza;

            if (oknoWczytywania.nazwa != null)
            {
                plansza = Plansza.OdczytajXML(oknoWczytywania.nazwa);
                MainWindow mainWindow = new MainWindow(plansza, plansza.czyGraKomputer);
                mainWindow.Closing += ShowMenu;
                mainWindow.Show();
                this.Close();
            }
        }
예제 #4
0
 /// <summary>
 /// Obiekt do sprawdzania szachu, mata i pata na danej planszy
 /// </summary>
 public Kontrolki(Plansza plansza)
 {
     this.plansza = plansza;
     this.pola    = plansza.Zwroc();
 }
예제 #5
0
 /// <summary>
 /// Zwraca najlepszy wedlug kompuetera ruch z danej jako parametr planszy
 /// </summary>
 public RuchAI ZwrocNajlepszyRuch(Plansza plansza)
 {
     return(zwrocNajlepszyRuchZPierwszejPlanszy(plansza));
 }