Пример #1
0
 public MainWindow()
 {
     InitializeComponent();
     DajKontekst = this;
     KlasaPlansza.DlugoscBoku = 65;
     KlasaPlansza.StworzPlansze(obszar, Brushes.Green, Brushes.White, Brushes.Green);
     KtoryGracz          = ktoryGracz;
     ZbitePionkiCzerwone = zbitePionkiCzerwone;
     ZbitePionkiBiale    = zbitePionkiBiale;
 }
Пример #2
0
        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;
            }
        }
Пример #3
0
        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();
                }
            }
        }