Example #1
0
        public void calculate()
        {
            generator gen = new generator();

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

            gen.calculate();

            Assert.AreEqual(8, gen.field[1, 2]);
            Assert.AreEqual(2, gen.field[0, 0]);
            Assert.AreEqual(3, gen.field[1, 0]);
            Assert.AreEqual(1, gen.field[3, 0]);
            Assert.AreEqual(0, gen.field[4, 0]);

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

            Assert.AreEqual(6, gen.field[1, 2]);
            Assert.AreEqual(4, gen.field[2, 4]);

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

            Assert.AreEqual(7, gen.field[1, 2]);
            Assert.AreEqual(5, gen.field[3, 2]);
        }
Example #2
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            open         = 0;
            sp.IsEnabled = true;
            sp.Children.Clear();
            //генерация поля
            gen.init(5);
            gen.plantMines(mines, mines);
            gen.calculate();

            //количество ячеек в сетке
            sp.Rows    = 5;
            sp.Columns = 5;
            //вычисление размеров сетки число_ячеек * (размер ячейки + толщина границы)
            sp.Width  = 5 * (50 + 4);
            sp.Height = 5 * (50 + 4);
            sp.Margin = new Thickness(5, 5, 5, 5);
            //размеры окна
            this.Width  = 5 * 70;
            this.Height = 6 * 70;
            //добавление кнопок в сетку
            for (int i = 0; i < 5 * 5; i++)
            {
                //создание кнопки
                Button btn = new Button();
                //запись номера кнопки
                btn.Tag = i;
                //установка размеров кнопки
                btn.Width  = 50;
                btn.Height = 50;
                //текст на кнопке
                btn.Content = " ";
                //толщина границ кнопки
                btn.Margin = new Thickness(2);
                //при нажатии кнопки, будет вызываться метод Btn_Click
                btn.Click += Btn_Click;;
                //добавление кнопки в сетку
                sp.Children.Add(btn);
            }
        }