public MainWindow() { InitializeComponent(); DajKontekst = this; KlasaPlansza.DlugoscBoku = 65; KlasaPlansza.StworzPlansze(obszar, Brushes.Green, Brushes.White, Brushes.Green); KtoryGracz = ktoryGracz; ZbitePionkiCzerwone = zbitePionkiCzerwone; ZbitePionkiBiale = zbitePionkiBiale; }
private static void czyMoznaZbicPionek(Pole p, List <Pionek> tablica, Pole[] tablicaPol) { List <Pionek> lista = tablica.Where((pionek) => pionek.Wiersz == p.Wiersz && pionek.Kolumna == p.Kolumna).ToList(); if (lista.Count == 0) { return; } int kolumnaPionkaZbijanego = lista.First().Kolumna, wierszPionkaZbijanego = lista.First().Wiersz; int kolumnaWolnegoPola = (KlasaPlansza.WybranyPionek.Kolumna > kolumnaPionkaZbijanego) ? kolumnaPionkaZbijanego - 1 : kolumnaPionkaZbijanego + 1; int wierszWolnegoPola = (KlasaPlansza.WybranyPionek.Wiersz > wierszPionkaZbijanego) ? wierszPionkaZbijanego - 1 : wierszPionkaZbijanego + 1; if (KlasaPlansza.czyWolnePole(kolumnaWolnegoPola, wierszWolnegoPola)) { Pole wolnePole = tablicaPol.Where((pole) => pole.Wiersz == wierszWolnegoPola && pole.Kolumna == kolumnaWolnegoPola).First(); listaWybranychPol.Add(new WybranePola() { Kolor = wolnePole.Obszar.Fill, WybranePole = wolnePole, ZbijanyPionek = lista.First() }); wolnePole.Obszar.Fill = Brushes.Blue; } }
public static void WykonajRuchLubBicie(object sender, MouseButtonEventArgs e) { Rectangle obszar = sender as Rectangle; if (obszar != null && obszar.Fill == Brushes.Blue) { Pionek p = KlasaPlansza.WybranyPionek; Point punkt = e.GetPosition(KlasaPlansza.PoleGry); int kolumna = 0, wiersz = 0; for (int i = 0, dol = i * KlasaPlansza.DlugoscBoku, gora = dol + KlasaPlansza.DlugoscBoku; i < 8; i++, dol = i * KlasaPlansza.DlugoscBoku, gora = dol + KlasaPlansza.DlugoscBoku) { if (punkt.X >= dol && punkt.X <= gora) { kolumna = (i + 1); } else if (punkt.Y >= dol && punkt.Y <= gora) { wiersz = (i + 1); } } WybranePola wybor = listaWybranychPol.Where((wybrane) => wybrane.WybranePole.Wiersz == wiersz && wybrane.WybranePole.Kolumna == kolumna).First(); Canvas.SetLeft(p.Obszar, Canvas.GetLeft(p.Obszar) + KlasaPlansza.DlugoscBoku * (wybor.WybranePole.Kolumna - p.Kolumna)); Canvas.SetTop(p.Obszar, Canvas.GetTop(p.Obszar) + KlasaPlansza.DlugoscBoku * (wybor.WybranePole.Wiersz - p.Wiersz)); p.Kolumna = wybor.WybranePole.Kolumna; p.Wiersz = wybor.WybranePole.Wiersz; if (wybor.ZbijanyPionek != null) { KlasaPlansza.PoleGry.Children.Remove(wybor.ZbijanyPionek.Obszar); KlasaPlansza.UsunPionek(wybor.ZbijanyPionek); if (Gracz == GraczWybor.Bialy) { MainWindow.ZbitePionkiCzerwone.Text = "x" + (++zbiteCzerwone); } else { MainWindow.ZbitePionkiBiale.Text = "x" + (++zbiteBiale); } UsunMozliweRuchy(); Point nowyPunkt = e.GetPosition(KlasaPlansza.PoleGry); KlasaPlansza.NaJakimPoluStoiPionek(nowyPunkt, Gracz, true); WTrakcieBicia = true; if (listaWybranychPol.Count != 0) { return; } } KlasaAnimacja.Animacja.Remove(p.Obszar); KlasaAnimacja.Flaga = true; UsunMozliweRuchy(); WTrakcieBicia = false; if (SprawdzCzyKoniecGry()) { MainWindow.KtoryGracz.Text = "WygraĆ Gracz: " + (Gracz == GraczWybor.Czerwony ? "Gracz2" : "Gracz1"); } else { czyPionekMozeBycDamka(KlasaPlansza.WybranyPionek); Gracz = (Gracz == GraczWybor.Czerwony) ? GraczWybor.Bialy : GraczWybor.Czerwony; MainWindow.KtoryGracz.Text = "Ruch: " + (Gracz == GraczWybor.Czerwony ? "Gracz2" : "Gracz1"); listaZablokowanychPionkow.Clear(); } } }