Exemple #1
0
        public Igra(int velicina_matrice, int broj_bombi, Igrac igrac) : this()
        {
            this.trenutni_igrac   = igrac;
            this.velicina_matrice = velicina_matrice;
            this.broj_bombi       = broj_bombi;
            this.broj_zastavica   = 0;

            grid = new Grid();

            grid.Width  = velicina_matrice * 20 + 17;
            grid.Height = velicina_matrice * 20;

            Width  = grid.Width;
            Height = grid.Height + 90;

            //dinamicko formiranje grida
            for (int i = 0; i < velicina_matrice; i++)
            {
                ColumnDefinition cd = new ColumnDefinition();
                cd.Width = new GridLength(20);
                grid.ColumnDefinitions.Add(cd);

                RowDefinition rd = new RowDefinition();
                rd.Height = new GridLength(20);
                grid.RowDefinitions.Add(rd);
            }

            matrica.Children.Add(grid);


            dugmici = new Button[velicina_matrice, velicina_matrice];


            for (int i = 0; i < velicina_matrice; i++)
            {
                for (int j = 0; j < velicina_matrice; j++)
                {
                    dugmici[i, j]                       = new Button();
                    dugmici[i, j].Style                 = (this.FindResource("dugmici") as Style);
                    dugmici[i, j].Tag                   = new Polje(false, Vrednost_polja.PRAZNO_POLJE, i, j);
                    dugmici[i, j].IsEnabled             = true;
                    dugmici[i, j].Click                += pritisnutoDugme;
                    dugmici[i, j].MouseRightButtonDown += desniKlik;
                }
            }

            tbBombe.Text = broj_bombi + "";

            Funkcionalnost.dodavanjeBombi(dugmici, broj_bombi, velicina_matrice);
            Funkcionalnost.ispisBrojeva(dugmici, velicina_matrice);
            Funkcionalnost.dodajDugmice(dugmici, velicina_matrice, grid);


            //Tajmer
            tajmer          = new DispatcherTimer();
            tajmer.Tick    += new EventHandler(TimerProc);
            tajmer.Interval = new TimeSpan(0, 0, 1);

            tbVreme.Text = formirajVreme(0);
        }
Exemple #2
0
        //Porverava da li je na toj poziciji prazno polje
        public bool proveriPolje(int i, int j)
        {
            if ((i >= 0) && (i < velicina_matrice) && (j >= 0) && (j < velicina_matrice) && !((Polje)dugmici[i, j].Tag).Zastavica)
            {
                if (((Polje)dugmici[i, j].Tag).Vrednost.Equals(Vrednost_polja.PRAZNO_POLJE))
                {
                    if (dugmici[i, j].IsEnabled)
                    {
                        dugmici[i, j].IsEnabled = false;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }


                if (((Polje)dugmici[i, j].Tag).Vrednost.Equals(Vrednost_polja.BROJ))
                {
                    int broj = ((Polje)dugmici[i, j].Tag).Broj_bombi_okolo;

                    Image slika_broj = new Image();
                    slika_broj.Source = Funkcionalnost.obojiBroj(this, broj).Source;

                    dugmici[i, j].Content   = slika_broj;
                    dugmici[i, j].IsEnabled = false;
                }
            }

            return(false);
        }
Exemple #3
0
        //restartuje igricu
        private void btnRestart_Click(object sender, RoutedEventArgs e)
        {
            for (int i = 0; i < velicina_matrice; i++)
            {
                for (int j = 0; j < velicina_matrice; j++)
                {
                    if (((Polje)dugmici[i, j].Tag).Zastavica)
                    {
                        dugmici[i, j].MouseRightButtonDown += desniKlik;
                    }

                    dugmici[i, j].Style     = (this.FindResource("dugmici") as Style);
                    dugmici[i, j].Tag       = new Polje(false, Vrednost_polja.PRAZNO_POLJE, i, j);
                    dugmici[i, j].IsEnabled = true;
                    dugmici[i, j].Content   = null;
                }
            }

            broj_zastavica           = 0;
            broj_pritisnutih_dugmica = 0;
            tbBombe.Text             = (broj_bombi - broj_zastavica) + "";
            btnRestart.Content       = (this.FindResource("happy") as Image);

            brojac_vremena = 1;
            tbVreme.Text   = formirajVreme(0);
            tajmer.Stop();

            Funkcionalnost.dodavanjeBombi(dugmici, broj_bombi, velicina_matrice);
            Funkcionalnost.ispisBrojeva(dugmici, velicina_matrice);
        }
Exemple #4
0
        //otvara sva polja
        public void otvoriSvaPolja()
        {
            for (int i = 0; i < velicina_matrice; i++)
            {
                for (int j = 0; j < velicina_matrice; j++)
                {
                    Polje polje = dugmici[i, j].Tag as Polje;

                    if (!polje.Zastavica)
                    {
                        if (polje.Vrednost == Vrednost_polja.PRAZNO_POLJE)
                        {
                            dugmici[i, j].IsEnabled = false;
                            dugmici[i, j].Style     = this.FindResource("dugmici_pritisnuto") as Style;
                        }

                        else if (polje.Vrednost == Vrednost_polja.BROJ)
                        {
                            Image img = new Image();
                            img.Source              = Funkcionalnost.obojiBroj(this, polje.Broj_bombi_okolo).Source;
                            dugmici[i, j].Content   = img;
                            dugmici[i, j].IsEnabled = false;
                            dugmici[i, j].Style     = this.FindResource("dugmici_pritisnuto") as Style;
                        }

                        else if (polje.Vrednost == Vrednost_polja.BOMBA)
                        {
                            Image img = new Image();
                            img.Source              = (this.FindResource("bomb") as Image).Source;
                            dugmici[i, j].Style     = this.FindResource("dugmici_pritisnuto") as Style;
                            dugmici[i, j].Content   = img;
                            dugmici[i, j].IsEnabled = false;
                        }
                    }
                    else
                    {
                        if (polje.Vrednost == Vrednost_polja.BOMBA)
                        {
                            dugmici[i, j].MouseRightButtonDown -= desniKlik;
                        }
                        else if (polje.Vrednost != Vrednost_polja.BOMBA)
                        {
                            Image img = new Image();
                            img.Source            = (this.FindResource("Xflag") as Image).Source;
                            dugmici[i, j].Content = img;
                            dugmici[i, j].MouseRightButtonDown -= desniKlik;
                        }
                    }
                }
            }
        }
Exemple #5
0
        private void pritisnutoDugme(object sender, EventArgs e)
        {
            if (broj_pritisnutih_dugmica == 0)
            {
                tajmer.Start();
            }

            Button dugme         = (Button)sender;
            Polje  polje_dugmeta = (Polje)dugme.Tag;

            if (dugme.IsEnabled && !polje_dugmeta.Zastavica)
            {
                if (polje_dugmeta.Vrednost.Equals(Vrednost_polja.BOMBA))
                {
                    btnRestart.Content = (this.FindResource("sad") as Image);
                    otvoriSvaPolja();
                    dugme.Content = (this.FindResource("bomb_red") as Image);
                    tajmer.Stop();
                    return;
                }

                else if (polje_dugmeta.Vrednost.Equals(Vrednost_polja.BROJ))
                {
                    Image slika_broj = new Image();
                    slika_broj.Source = Funkcionalnost.obojiBroj(this, polje_dugmeta.Broj_bombi_okolo).Source;
                    dugme.Content     = slika_broj;
                    dugme.IsEnabled   = false;
                }

                else
                {
                    dugme.IsEnabled = false;
                    otvori_prazna_polja_okolo(dugme);
                }



                broj_pritisnutih_dugmica = 0;
                //broji pritisnute dugmice
                for (int i = 0; i < velicina_matrice; i++)
                {
                    for (int j = 0; j < velicina_matrice; j++)
                    {
                        if (!dugmici[i, j].IsEnabled)
                        {
                            dugmici[i, j].Style = this.FindResource("dugmici_pritisnuto") as Style;
                            broj_pritisnutih_dugmica++;
                        }
                    }
                }


                //ako su ostale samo bombe
                if ((velicina_matrice * velicina_matrice - broj_bombi) == broj_pritisnutih_dugmica)
                {
                    //Pokretanje animacije
                    btnRestart.BeginStoryboard(this.FindResource("animacija") as Storyboard);
                    tajmer.Stop();
                    trenutni_igrac.Broj_bodova = 1000 - brojac_vremena;


                    if (TopLista.dodajIgracaZaKategoriju(velicina_matrice, trenutni_igrac))
                    {
                        MessageBox.Show("Osvojili ste " + trenutni_igrac.Broj_bodova + " boda i nalazite se medju 10 najboljih igrača ");
                    }
                    else
                    {
                        MessageBox.Show("Osvojili ste " + trenutni_igrac.Broj_bodova + " boda ali niste uspeli da se plasirate medju 10 najboljih igrača ");
                    }

                    //postavlja zastavice na mestima gde se nalaze bombe kada su ostale samo bombe
                    for (int i = 0; i < velicina_matrice; i++)
                    {
                        for (int j = 0; j < velicina_matrice; j++)
                        {
                            if (((Polje)dugmici[i, j].Tag).Vrednost == Vrednost_polja.BOMBA)
                            {
                                ((Polje)dugmici[i, j].Tag).Zastavica = true;
                                dugmici[i, j].MouseRightButtonDown  -= desniKlik;
                                Image img = new Image();
                                img.Source            = (this.FindResource("flag") as Image).Source;
                                dugmici[i, j].Content = img;
                            }
                        }
                    }
                }
            }
        }