/// <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> /// Funckcja bierze pole a zwraca jego graficzną reprezentację w UI /// </summary> /// <param name="value">Pole które chcemy przekonwertować na obrazek</param> /// <returns>Zwraca obrazek, który reprezentuje stan pola</returns> public BitmapImage Convert(SzachownicaPole value) { SzachownicaPole do_konwersji = (SzachownicaPole)value; string lokalizacja = ""; lokalizacja = do_konwersji.biale_pole_planszy == 1 ? "Biale" : "Czarne"; Bierka figuraWobrazek = do_konwersji.figurka; if (!(figuraWobrazek is null)) { if (figuraWobrazek is Pionek) { lokalizacja += "Pion"; } else if (figuraWobrazek is Krol) { lokalizacja += "Krol"; if (figuraWobrazek.ktory_gracz() == gracz_zaszachowany) { lokalizacja += "Szach"; } } else if (figuraWobrazek is Krolowa) { lokalizacja += "Krolowa"; } else if (figuraWobrazek is Goniec) { lokalizacja += "Goniec"; } else if (figuraWobrazek is Wieza) { lokalizacja += "Wieza"; } else if (figuraWobrazek is Skoczek) { lokalizacja += "Skoczek"; } lokalizacja += figuraWobrazek.ktory_gracz() == 1 ? "Biale" : "Czarne"; } return(new BitmapImage(new Uri($"pack://application:,,,/Images/{lokalizacja}.png"))); }
/// <summary> /// Ustawiamy wszystkie bierki na odpowiednich miejscach na planszy /// </summary> private void zainicjuj_gracza(int kolor) { int wiersz = kolor == 0 ? 1 : 6; // czarny kolor -> ustawiamy pionki w 2gimi rzedzie, jeśli nie, to w 7 for (int i = 0; i < 8; i++) { plansza[wiersz * 8 + i] = new SzachownicaPole(new Pionek(kolor)); } wiersz = kolor == 0 ? 0 : 7; //jeśli kolor == 0-> czarny gracz -> ustawiamy na górze, otherwise na dole //startowo ustawiamy kolor kazdego pola na bialy, pozniej przejdziemy sie po calej tablict i pozmieniamy jak trzeba plansza[wiersz * 8] = new SzachownicaPole(new Wieza(kolor)); plansza[wiersz * 8 + 7] = new SzachownicaPole(new Wieza(kolor)); plansza[wiersz * 8 + 1] = new SzachownicaPole(new Skoczek(kolor)); plansza[wiersz * 8 + 6] = new SzachownicaPole(new Skoczek(kolor)); plansza[wiersz * 8 + 2] = new SzachownicaPole(new Goniec(kolor)); plansza[wiersz * 8 + 5] = new SzachownicaPole(new Goniec(kolor)); plansza[wiersz * 8 + 4] = new SzachownicaPole(new Krol(kolor)); plansza[wiersz * 8 + 3] = new SzachownicaPole(new Krolowa(kolor)); }
/// <summary> /// Tworzy szachownicę z pól -> każdemu polu ustawia kolor /// </summary> private void zainicjuj_kolory() { int kolor = 1; for (int i = 0; i < 64; i++) { if (plansza[i] is null) { plansza[i] = new SzachownicaPole((Bierka)null); } plansza[i].biale_pole_planszy = kolor; if (i % 8 == 7) //jeśli jesteśmy na końcu wiersza, to kolor się nie zmienia - tak, jak w szachownicy { continue; } else { kolor = kolor == 1 ? 0 : 1; } } }