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; } } }
//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); }