/// <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; }
/// <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; } }