コード例 #1
0
 /// <summary>
 /// Konstruktor kopiujący
 /// </summary>
 /// <param name="pom"></param>
 public Szachownica(Szachownica pom)
 {
     plansza = new SzachownicaPole[64];
     for (int i = 0; i < 64; i++)
     {
         plansza[i] = new SzachownicaPole(pom.poleNaSzachownicy(i));
     }
     this.czarny_krol = pom.czarny_krol;
     this.bialy_krol  = pom.bialy_krol;
 }
コード例 #2
0
        /// <summary>
        /// Funkcja aktualizuje w UI pozycje pionków -> przechodzi po tablicy i ustawia nowe pionki
        /// Wynajduje też i aktualizuje informacje gdzie znajdują się dane wieże (to jest niezbędne do wykonania roszady)
        /// </summary>
        private void aktualizuj_plansze()
        {
            List <int> biale_wieze            = new List <int>(2);
            List <int> czarne_wieze           = new List <int>(2);
            int        pozycja_bialego_krola  = 0;
            int        pozycja_czarnego_krola = 0;

            for (int i = 0; i < 64; i++)
            {
                przyciski[i].BorderThickness = new Thickness(0);

                var brush = new ImageBrush();
                //jeśli_gracz zasachowany to znaczy ze zaden gracz niezaszachowany ergo nie ma szacha
                brush.ImageSource       = Convert(plansza.poleNaSzachownicy(i));
                brush.Stretch           = Stretch.Fill;
                przyciski[i].Background = brush;
                if (plansza.figura_na_polu(i) is Krol)
                {
                    if (plansza.figura_na_polu(i).ktory_gracz() == 1)
                    {
                        pozycja_bialego_krola = i;
                    }
                    else
                    {
                        pozycja_czarnego_krola = i;
                    }
                }

                if (plansza.figura_na_polu(i) is Wieza)
                {
                    if (plansza.figura_na_polu(i).ktory_gracz() == 1)
                    {
                        biale_wieze.Add(i);
                    }
                    else
                    {
                        czarne_wieze.Add(i);
                    }
                }
            }
            //aktualizacja pozycji wież dla białego króla
            if (biale_wieze.Count == 0)
            {
                ((Krol)plansza.figura_na_polu(pozycja_bialego_krola)).pozycja_pierwszej_wiezy = -1;
            }
            else if (biale_wieze.Count == 1)
            {
                ((Krol)plansza.figura_na_polu(pozycja_bialego_krola)).pozycja_pierwszej_wiezy = biale_wieze[0];
            }
            else if (biale_wieze.Count == 2)
            {
                ((Krol)plansza.figura_na_polu(pozycja_bialego_krola)).pozycja_drugiej_wiezy = biale_wieze[1];
            }
            else
            {
                ((Krol)plansza.figura_na_polu(pozycja_bialego_krola)).pozycja_drugiej_wiezy = -1;
            }
            //aktualizacja pozycji wież dla czarnego króla
            if (czarne_wieze.Count == 0)
            {
                ((Krol)plansza.figura_na_polu(pozycja_czarnego_krola)).pozycja_pierwszej_wiezy = -1;
            }
            else if (czarne_wieze.Count == 1)
            {
                ((Krol)plansza.figura_na_polu(pozycja_czarnego_krola)).pozycja_pierwszej_wiezy = czarne_wieze[0];
            }
            else if (czarne_wieze.Count == 2)
            {
                ((Krol)plansza.figura_na_polu(pozycja_czarnego_krola)).pozycja_drugiej_wiezy = czarne_wieze[1];
            }
            else
            {
                ((Krol)plansza.figura_na_polu(pozycja_czarnego_krola)).pozycja_drugiej_wiezy = -1;
            }
        }