Beispiel #1
0
 private void Nakresliznak(Graphics g, Gamepiece piece, int x, int y)
 {
     if (!Vypocet.Jevrozmezi(x, y))                                //Zkouším jestli je vykreslované pole v hracím poly
     {
         throw new Exception("Souřadnice jsou mimo hrací plochu"); //Ošetření výjimky
     }
     if (piece == Gamepiece.X)
     {
         g.DrawLine(PeroX, x * velikostpolicka + 1, y * velikostpolicka + 1, x * velikostpolicka + velikostpolicka - 1, y * velikostpolicka + velikostpolicka - 1); //kreslím 1. čáru křížku (Z levého horního rohu do dolního pravého rohu)
         g.DrawLine(PeroX, x * velikostpolicka + 1, y * velikostpolicka + velikostpolicka - 1, x * velikostpolicka + velikostpolicka - 1, y * velikostpolicka + 1); //kreslím 2. čáru křížku (Z levého dolního rohu do horního pravého rohu)
     }
     if (piece == Gamepiece.O)
     {
         g.DrawEllipse(PeroO, x * velikostpolicka + 1, y * velikostpolicka + 1, velikostpolicka - 2, velikostpolicka - 2); //kreslím kolečko
     }
 }
Beispiel #2
0
        private void Hraciplocha_MouseClick(object sender, MouseEventArgs e)
        {
            int x = e.X / velikostpolicka;  //Zjišťuji souřadnici kliknutí x
            int y = e.Y / velikostpolicka;  //Zjišťuji souřadnici klisnutí y

            if (!Vypocet.Jevrozmezi(x, y))  //testuji jsetli se kliklo do mřížky
            {
                return;
            }
            if (x == 0)                                 //Testuji jestli se kliklo do prvního sloupečku
            {
                y = (velikost - 1) - a;                 //nastavuji y aby bylo jako nejnižší volné pole v mřížce
                a = a + 1;                              //zaznamenávám že je obsazeno další políčko
                if (y <= -1)                            //testuji jestli je sloupec plný
                {
                    MessageBox.Show("Sloupec je plný"); //když je sloupec plný vyskoší okénko
                    return;                             //informaci posílám do výpočtů
                }
                else
                {
                    w = w - 1;      //když není sloupec plný zaznamenávám, že je o jedno volné políčko méně (identifikace remízy)
                }
            }
            if (x == 1)
            {
                y = (velikost - 1) - b;
                b = b + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 2)
            {
                y = (velikost - 1) - c;
                c = c + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 3)
            {
                y = (velikost - 1) - d;
                d = d + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 4)
            {
                y = (velikost - 1) - f;
                f = f + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 5)
            {
                y = (velikost - 1) - g;
                g = g + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 6)
            {
                y = (velikost - 1) - h;
                h = h + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 7)
            {
                y = (velikost - 1) - i;
                i = i + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 8)
            {
                y = (velikost - 1) - j;
                j = j + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 9)
            {
                y = (velikost - 1) - k;
                k = k + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 10)
            {
                y = (velikost - 1) - l;
                l = l + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 11)
            {
                y = (velikost - 1) - m;
                m = m + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 12)
            {
                y = (velikost - 1) - n;
                n = n + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 13)
            {
                y = (velikost - 1) - o;
                o = o + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 14)
            {
                y = (velikost - 1) - p;
                p = p + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 15)
            {
                y = (velikost - 1) - q;
                q = q + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 16)
            {
                y = (velikost - 1) - r;
                r = r + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 17)
            {
                y = (velikost - 1) - s;
                s = s + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 18)
            {
                y = (velikost - 1) - t;
                t = t + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            if (x == 19)
            {
                y = (velikost - 1) - u;
                u = u + 1;
                if (y <= -1)
                {
                    MessageBox.Show("Sloupec je plný");
                    return;
                }
                else
                {
                    w = w - 1;
                }
            }
            Vysledek vysledekhry = Vypocet.Pridejfigurku(x, y, hrac); //zaznamenávám x souřadnici, y souřadnici, a hráče (X nebo O)

            Refresh();                                                //Zapisuje figurku (obnovuje komponentu)
            if (vysledekhry == Vysledek.Vyhra)                        //testuji jestli vypočet nezaznamenal výhru
            {
                MessageBox.Show("Vyhrál hráč který měl: " + hrac);    //když zjistím, že někdo vyhrál vyskočí okénko
            }
            if (w == 0)                                               //testuji jestli je ještě nejaké políčko volné
            {
                MessageBox.Show("Remíza, žádný z hráčů nevyhrává");   //když zjistím, že žádné políčko není volné, vyskočí okénko remíza
            }
            hrac = Protihrac;                                         //střídání X a O
        }