예제 #1
0
        /// <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);
        }
예제 #2
0
 /// <summary>
 /// Tworzy kopie Gonca
 /// </summary>
 internal override Bierka Kopiuj(Plansza plansza)
 {
     return(new Goniec(Pozycja, Kolor, plansza, PierwszyRuch, PobMozliweRuchy.ToList(), Kolejka));
 }