public static Figura inst(NazwaFigury figura, char X, int Y, Kolory kolor) { Figura figure = null; switch (figura) { case NazwaFigury.Król: { figure = new Krol(X, Y, kolor); break; } case NazwaFigury.Wieża: { figure = new Wieza(X, Y, kolor); break; } case NazwaFigury.Goniec: { figure = new Goniec(X, Y, kolor); break; } case NazwaFigury.Hetman: { figure = new Hetman(X, Y, kolor); break; } } return(figure); }
public void DodajPionek(string nazwa, string kolor, string pozycja) { //dekodowanie pozycji, uzyskane dane sluza do poprawnej reprezentacji figur w tablicy: int x1, y1; x1 = (int)pozycja[0] - 64 - 1; y1 = Int32.Parse(pozycja.Substring(1)) - 1; y1 = 7 - y1; //stworzenie w polu tablicy obiektu pionka switch (nazwa) { case "Pionek": szachownica[x1, y1] = new Pionek(kolor, x1, y1); ilosc_pionkow++; break; case "Krol": szachownica[x1, y1] = new Krol(kolor, x1, y1); ilosc_pionkow++; break; case "Wieza": szachownica[x1, y1] = new Wieza(kolor, x1, y1); ilosc_pionkow++; break; case "Krolowa": szachownica[x1, y1] = new Krolowa(kolor, x1, y1); ilosc_pionkow++; break; } }
/// <summary> /// Z racji, że ruch królowej to kombinacja możliwości ruchu gońca i wieży, to sumuję pola w które mogą ruszyć się te figury, /// jakby żyły na miejscu królowej /// </summary> public override List<int> zobacz_mozliwosci(int pole, Szachownica pomocnicza_szachownica) { Goniec goniec_pom = new Goniec(bialy_gracz); pomocnicza_szachownica.ustaw_na_polu(goniec_pom, pole); List<int> mozliwosci_gonca = goniec_pom.zobacz_mozliwosci(pole, pomocnicza_szachownica); Wieza wieza_pom = new Wieza(bialy_gracz); pomocnicza_szachownica.ustaw_na_polu(wieza_pom, pole); List<int> mozliwosci_wiezy = wieza_pom.zobacz_mozliwosci(pole, pomocnicza_szachownica); mozliwosci_gonca.AddRange(mozliwosci_wiezy); pomocnicza_szachownica.ustaw_na_polu(new Krolowa(bialy_gracz), pole); //królowa wraca na pole return mozliwosci_gonca; }
/// <summary> /// Konstruktor kopiujący /// </summary> /// <param name="pom">Wieża, którą chcemy skopiować</param> public Wieza(Wieza pom) { bialy_gracz = pom.ktory_gracz(); }