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 } }
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 }