Beispiel #1
0
        public void reveal()
        {
            CGenerator gen = new CGenerator();

            gen.field = new int[, ] {
                { 3, -1, 2, 0, 0 },
                { -1, -1, 2, 0, 0 },
                { 2, 2, 2, 1, 1 },
                { 0, 0, 1, -1, 1 }
            };

            gen.reveal(3, 1);
            gen.reveal(0, 3);
            Assert.AreEqual(10, gen.field[3, 1]);
            Assert.AreEqual(10, gen.field[0, 3]);
            Assert.AreEqual(10, gen.field[3, 0]);
            Assert.AreEqual(2, gen.field[1, 2]);
        }
Beispiel #2
0
        public void reveal()
        {
            CGenerator gen = new CGenerator();

            gen.field = new int[, ] {
                { -1, -1, 0, 0, 0 },
                { -1, -1, -1, -1, 0 },
                { 0, -1, -1, -1, 0 },
                { 0, -1, -1, -1, 0 }
            };

            gen.reveal(3, 3);
            Assert.AreEqual(-1, gen.field[3, 3]);
        }
Beispiel #3
0
        private void Btn_Click(object sender, RoutedEventArgs e)
        {
            ////получение значения лежащего в Tag
            int n = (int)((Button)sender).Tag;


            if (gen.getCell(n % 5, n / 5) == 0)
            {
                gen.reveal(n % 5, n / 5);

                Button[] buts = new Button[setka.Children.Count];
                setka.Children.CopyTo(buts, 0);

                for (int i = 0; i < buts.Length; i++)
                {
                    int ind = (int)(buts[i]).Tag;

                    if (gen.getCell(ind % 5, ind / 5) == 10)
                    {
                        //установка фона нажатой кнопки, цвета и размера шрифта
                        (buts[i]).Background = Brushes.MediumPurple;
                        (buts[i]).Foreground = Brushes.Red;
                        (buts[i]).FontSize   = 23;

                        //запись в нажатую кнопку её номера
                        (buts[i]).Content = 0;
                        h++;
                        (buts[i]).Click -= Btn_Click;
                    }
                }
            }
            else


            if (gen.getCell(n % 5, n / 5) > 0)
            {
                //установка фона нажатой кнопки, цвета и размера шрифта
                ((Button)sender).Background = Brushes.MediumPurple;
                ((Button)sender).Foreground = Brushes.Red;
                ((Button)sender).FontSize   = 23;

                //запись в нажатую кнопку её номера
                ((Button)sender).Content = gen.getCell(n % 5, n / 5);

                h++;
                ((Button)sender).Click -= Btn_Click;
                if ((25 - h) == q)
                {
                    MessageBox.Show("Du bist WINNER!");
                }
            }
            else

            if (gen.getCell(n % 5, n / 5) == -1)
            {
                Button[] buts = new Button[setka.Children.Count];
                setka.Children.CopyTo(buts, 0);

                for (int i = 0; i < buts.Length; i++)
                {
                    int ind = (int)(buts[i]).Tag;

                    if (gen.getCell(ind % 5, ind / 5) == -1)
                    {
                        Image img = new Image();
                        img.Source = mine;
                        //создание переменной для отображения изображения мины
                        StackPanel minePnl;
                        //инициализация и установка ориентации, можно вызвать в методе инициализации формы
                        minePnl = new StackPanel();
                        // minePnl.Orientation = Orientation.Vertical;
                        //установка толщины границы объекта
                        minePnl.Margin = new Thickness(1);
                        //добавление в объект изображения
                        minePnl.Children.Add(img);

                        (buts[i]).Content = minePnl;
                    }
                }
                MessageBox.Show("you are R E D I S K A ");
                setka.IsEnabled = false;
            }
        }
Beispiel #4
0
        private void Btn_Click(object sender, RoutedEventArgs e)
        {
            ////получение значения лежащего в Tag
            int n = (int)((Button)sender).Tag;


            if (gen.getCell(n % 5, n / 5) == 0)
            {
                gen.reveal(n % 5, n / 5);

                Button[] buts = new Button[setka.Children.Count];
                setka.Children.CopyTo(buts, 0);

                for (int i = 0; i < buts.Length; i++)
                {
                    int ind = (int)(buts[i]).Tag;

                    if (gen.getCell(ind % 5, ind / 5) == 10)
                    {
                        //установка фона нажатой кнопки, цвета и размера шрифта
                        (buts[i]).Background = Brushes.CadetBlue;
                        (buts[i]).Foreground = Brushes.Bisque;
                        (buts[i]).FontSize   = 23;

                        //запись в нажатую кнопку её номера
                        (buts[i]).Content = 0;
                        h++;
                        if ((25 - h) == q)
                        {
                            if (MessageBox.Show("Победа! Продолжить?", "Конец игры", MessageBoxButton.YesNo) == MessageBoxResult.No)
                            {
                                Environment.Exit(0);
                            }
                            else
                            {
                                setka.Children.Clear();
                            }
                        }
                    }
                    if (gen.getCell(ind % 5, ind / 5) == 11 || gen.getCell(ind % 5, ind / 5) == 12 || gen.getCell(ind % 5, ind / 5) == 13 || gen.getCell(ind % 5, ind / 5) == 14 || gen.getCell(ind % 5, ind / 5) == 15)
                    {
                        //установка фона нажатой кнопки, цвета и размера шрифта
                        (buts[i]).Background         = Brushes.CadetBlue;
                        (buts[i]).Foreground         = Brushes.Bisque;
                        (buts[i]).FontSize           = 23;
                        gen.field[ind % 5, ind / 5] -= 10;
                        //запись в нажатую кнопку её номера
                        (buts[i]).Content = gen.field[ind % 5, ind / 5];
                        h++;
                        if ((25 - h) == q)
                        {
                            if (MessageBox.Show("Победа! Продолжить?", "Конец игры", MessageBoxButton.YesNo) == MessageBoxResult.No)
                            {
                                Environment.Exit(0);
                            }
                            else
                            {
                                setka.Children.Clear();
                            }
                        }
                    }
                }
            }
            else


            if (gen.getCell(n % 5, n / 5) > 0)
            {
                //установка фона нажатой кнопки, цвета и размера шрифта
                ((Button)sender).Background = Brushes.CadetBlue;
                ((Button)sender).Foreground = Brushes.Bisque;
                ((Button)sender).FontSize   = 23;

                //запись в нажатую кнопку её номера
                ((Button)sender).Content = gen.getCell(n % 5, n / 5);

                h++;
                if ((25 - h) == q)
                {
                    if (MessageBox.Show("Победа! Продолжить?", "Конец игры", MessageBoxButton.YesNo) == MessageBoxResult.No)
                    {
                        Environment.Exit(0);
                    }
                    else
                    {
                        setka.Children.Clear();
                    }
                }
            }
            else

            if (gen.getCell(n % 5, n / 5) == -1)
            {
                Button[] buts = new Button[setka.Children.Count];
                setka.Children.CopyTo(buts, 0);

                for (int i = 0; i < buts.Length; i++)
                {
                    int ind = (int)(buts[i]).Tag;

                    if (gen.getCell(ind % 5, ind / 5) == -1)
                    {
                        Image img = new Image();
                        img.Source = mine;
                        //создание переменной для отображения изображения мины
                        StackPanel minePnl;
                        //инициализация и установка ориентации, можно вызвать в методе инициализации формы
                        minePnl = new StackPanel();
                        // minePnl.Orientation = Orientation.Vertical;
                        //установка толщины границы объекта
                        minePnl.Margin = new Thickness(1);
                        //добавление в объект изображения
                        minePnl.Children.Add(img);

                        (buts[i]).Content = minePnl;
                    }
                }
                if (MessageBox.Show("Вы проиграли!? Продолжить?", "Конец игры", MessageBoxButton.YesNo) == MessageBoxResult.No)
                {
                    Environment.Exit(0);
                }
                else
                {
                    setka.Children.Clear();
                }
                setka.IsEnabled = false;
            }
        }