コード例 #1
0
 private void WyczyscPrzeloty()
 {
     if (przeloty.Count() != 0)
     {
         Przelot przelot = przeloty.Last();
         if (plansza[przelot.x, przelot.y] is Pionek)
         {
             plansza[przelot.XPionka, przelot.YPionka] = poleBezPionka;
         }
         else
         {
             plansza[przelot.x, przelot.y] = poleBezPionka;
         }
     }
 }
コード例 #2
0
 //metody
 /// <summary>
 /// Wykonuje ruch na planszy z x1,y1 do x2,y2 dla gracza gracz
 /// </summary>
 /// <returns>Prawda jesli ruch sie powiodl, falsz jesli nie</returns>
 public bool RuszGlowny(int x1, int y1, int x2, int y2, Gracz gracz)
 {
     if (SprawdzCalyRuch(x1, y1, x2, y2, gracz) == true)
     {
         if (roszada.czyRoszada)
         {
             WykonajRoszade();
             roszada.czyRoszada = false;
             return(true);
         }
         WykonajRuch(x1, y1, x2, y2);
         WyczyscPrzeloty();
         kontrolki.Sprawdz();
         promocja.Sprawdz(x2, y2, plansza[x2, y2]);
         if ((y2 - y1 == 2) && plansza[x2, y2] is Pionek && czyGraKomputer)
         {
             return(false);
         }
         else if ((y2 - y1 == 2 || y2 - y1 == -2) && plansza[x2, y2] is Pionek)
         {
             Przelot przelot = new Przelot(gracz, x2, (y2 + y1) / 2, licznikRuchow, x2, y2);
             plansza[x1, ((y2 + y1) / 2)] = przelot;
             przeloty.Add(przelot);
         }
         if (plansza[x2, y2] is Krol)
         {
             (plansza[x2, y2] as Krol).CzyWykonalPierwszyRuch = true;
         }
         else if (plansza[x2, y2] is Wieza)
         {
             (plansza[x2, y2] as Wieza).CzyWykonalPierwszyRuch = true;
         }
         return(true);
     }
     return(false);
 }