Ejemplo n.º 1
0
        private void Hraci_plocha_MouseClick(object sender, MouseEventArgs e)
        {
            int x = (e.X) / velikost_policka;
            int y = (e.Y) / velikost_policka;

            if (aktivni_hra == false)
            {
                return;
            }

            if (!(Muj_vypocet.klik_na_hraci_plochu(x, y)))
            {
                return;
            }
            if (Muj_vypocet.Rozlozeni_figurek[x, y] != Stav_pole.Volne)
            {
                return;
            }
            Vysledek_hry vysledek = Muj_vypocet.Pridani_tahu(x, y, aktualni_hrac);

            Refresh();
            if (vysledek == Vysledek_hry.Vyhra)
            {
                aktivni_hra = false;
                MessageBox.Show("Vyhral " + aktualni_hrac);
            }
            else if (vysledek == Vysledek_hry.Remiza)
            {
                aktivni_hra = false;
                MessageBox.Show("Remiza");
            }
            aktualni_hrac = Protivnik;
        }
Ejemplo n.º 2
0
        public Vysledek_hry Pridani_tahu(int x, int y, Stav_pole hrac)
        {
            Vysledek_hry vysledek = Vysledek_hry.Pokracovat;

            foreach (Smer_hry smer in Enum.GetValues(typeof(Smer_hry)))
            {
                for (int i = 0; i < souvisla_delka_figurek_pro_vyhru; i++)
                {
                    int smer_horizontalni = znamenka_smeru[(int)smer, (int)Souradnice.X];
                    int smer_vertikalni   = znamenka_smeru[(int)smer, (int)Souradnice.Y];
                    int poziceX           = x + i * smer_horizontalni;
                    int poziceY           = y + i * smer_vertikalni;
                    if (((smer_horizontalni == -1 && poziceX >= 0 && poziceX <= velikost_hraci_plochy - souvisla_delka_figurek_pro_vyhru) || (smer_horizontalni == 1 && poziceX >= souvisla_delka_figurek_pro_vyhru - 1 && poziceX < velikost_hraci_plochy) || (smer_horizontalni == 0)) &&
                        ((smer_vertikalni == -1 && poziceY >= 0 && poziceY <= velikost_hraci_plochy - souvisla_delka_figurek_pro_vyhru) || (smer_vertikalni == 1 && poziceY >= souvisla_delka_figurek_pro_vyhru - 1 && poziceY < velikost_hraci_plochy) || (smer_vertikalni == 0)))
                    {
                        vysledek = Zapocitej_tah(ref Figurky_v_rade[poziceX, poziceY, (int)smer, (int)hrac]);
                        if (vysledek != Vysledek_hry.Pokracovat)
                        {
                            break;
                        }
                    }
                }
                if (vysledek != Vysledek_hry.Pokracovat)
                {
                    break;
                }
            }
            Rozlozeni_figurek[x, y] = hrac;
            if (vysledek == Vysledek_hry.Pokracovat && celkovy_pocet_moznych_rad <= 0)
            {
                vysledek = Vysledek_hry.Remiza;
            }
            return(vysledek);
        }