コード例 #1
0
 public Action czyWygrana;                           //Funkcja w Form1.cs
 public Pole(int maks, int a, int b)                 //maks - maksymalna ilość oczek, a i b - lokalizacja pola w tablicy
 {
     poleNaPlanszy = new PictureBox
     {
         Name        = "Pole",                            //Chyba niepotrzebne, ale jest
         Image       = Image.FromFile("1.png"),           //Domyślnie na polu jest 1 oczko
         SizeMode    = PictureBoxSizeMode.StretchImage,   //Dopasowanie grafiki do wymiarów obiektu
         BorderStyle = BorderStyle.FixedSingle,           //Obramowanie pola
         BackColor   = MainWindow.plansza.kolorNeutralny, //Kolor neutralny
     };
     oczka = 1;
     i     = a;                                                //Przypisanie polu informacji na temat jego lokalizacji
     j     = b;
     max   = maks;                                             //Informacja o maksymalnej liczbie oczek jest generowana w momencie tworzenia pola w pliku Form1.cs
     poleNaPlanszy.MouseClick += new MouseEventHandler(dodaj); //Po kliknięciu pola ma ono zwiększyć swoją liczbę oczek
     owner = null;                                             //Domyślnie pola nie posiadają właściciela
 }
コード例 #2
0
 private void dodaj(object sender, MouseEventArgs e) //Ta metoda zostaje wywołana kliknięciem myszą
 {
     if (e.Button == MouseButtons.Right)             //Prawoklik da informacje o polu
     {
         if (owner == null)
         {
             MessageBox.Show("Właściciel pola: Pole neutralne", "Informacje o polu");
         }
         else
         {
             MessageBox.Show("Właściciel pola: " + owner.nazwaGracza, "Informacje o polu");
         }
     }
     else
     {
         if (MainWindow.plansza.aktualnyGracz == owner)//Prawie to samo co dodaj() bez argumentów
         {
             owner = MainWindow.plansza.aktualnyGracz;
             oczka++;
             poleNaPlanszy.Image = Image.FromFile(oczka + ".png");
             MainWindow.plansza.aktualnyGracz.punkty += oczka;
             if (oczka == max)
             {
                 skokInside();
             }
             zmianaGracza();
         }
         else if (owner == null)//Przejęcie neutralnego pola
         {
             owner = MainWindow.plansza.aktualnyGracz;
             poleNaPlanszy.BackColor = MainWindow.plansza.aktualnyGracz.KolorGracza;
             oczka++;
             MainWindow.plansza.aktualnyGracz.punkty += oczka;
             poleNaPlanszy.Image = Image.FromFile(oczka + ".png");
             zmianaGracza();
             MainWindow.wygranaGlobal = false;//Pierwsze kliknięcia zerują flagę wygranej
         }
         else//Gracz kliknął pole przeciwnika
         {
             MessageBox.Show("To pole nie należy do Ciebie", "Cudze pole");
         }
     }
 }
コード例 #3
0
 public void dodaj()                                                             //Ta metoda zostaje wywołana przez efekt fali
 {
     if (!MainWindow.wygranaGlobal)                                              //Ta flaga została ustawiona, ponieważ po wygranej i stworzeniu nowego pola poprzednia gra wpływała na nową
     {
         owner = MainWindow.plansza.aktualnyGracz;                               //Przyznanie pola graczowi który to pole przejął
         oczka++;                                                                //Zwiększenie ilości oczek
         poleNaPlanszy.Image = Image.FromFile(oczka + ".png");
         MainWindow.plansza.aktualnyGracz.punkty += oczka;                       //Punkty dla aktualnego gracza
         poleNaPlanszy.BackColor = MainWindow.plansza.aktualnyGracz.KolorGracza; //Sygnalizowanie kolorem własności pola
         czyWygrana();
         if (!MainWindow.wygranaGlobal)
         {
             if (oczka == max)
             {
                 skokInside();              //Ilość oczek osiągnęła wartość maksymalną, rozpoczynanie efektu fali
             }
         }
     }
 }