/// <summary> /// prubuje przemiescic bierke na wskazana pozycje /// </summary> /// <param name="przemieszczenie">pozycja na ktora ma sie przemiescic bierka</param> /// <returns>zwraca prawda jezeli udalo sie przemiescic bierke</returns> public override bool WykonajRuch(Punkt przemieszczenie) { //sprawdz czy przemieszczenie znajduje sie na liscie mozliwych ruchow if (PobMozliweRuchy.Contains(przemieszczenie)) { if (przemieszczenie - Pozycja == new Punkt(-1, Strona) || przemieszczenie - Pozycja == new Punkt(1, Strona)) { if (!plansza.BierkaNaPozycji(przemieszczenie, out _)) { plansza.ZbijBierke(przemieszczenie - new Punkt(0, Strona), (Kolor == LogikaSzachy.Strona.Biała) ? LogikaSzachy.Strona.Czarna : LogikaSzachy.Strona.Biała); } } PierwszyRuch = false; Pozycja = przemieszczenie; if (Pozycja.Y == 7 || Pozycja.Y == 0) { plansza.PromocjaPionka(this); } plansza.zmianaStatusu = plansza.Ruchy; return(true); } return(false); }
/// <summary> /// Tworzy kopie Gonca /// </summary> internal override Bierka Kopiuj(Plansza plansza) { return(new Goniec(Pozycja, Kolor, plansza, PierwszyRuch, PobMozliweRuchy.ToList(), Kolejka)); }