public void plant_mines() { generator gen = new generator(); gen.init(5); gen.plantMines(5, 5); int sum = 0; for (int i = 0; i < gen.field.GetLength(0); i++) { for (int j = 0; j < gen.field.GetLength(1); j++) { if (gen.getCell(i, j) == -1) { sum++; } } } Assert.AreEqual(5, sum); Assert.AreEqual(true, gen.minesCheck()); //Assert.AreEqual(, gen.plantMines(250)); }
private void Btn_Click(object sender, RoutedEventArgs e) { //получение значения лежащего в Tag int n = (int)((Button)sender).Tag; //установка фона нажатой кнопки, цвета и размера шрифта ((Button)sender).Background = Brushes.MistyRose; int num = gen.getCell(n % 5, n / 5); if (num > 0) { ((Button)sender).Click -= Btn_Click; open++; ((Button)sender).Foreground = Brushes.MidnightBlue; ((Button)sender).FontSize = 23; //запись в нажатую кнопку её номера ((Button)sender).Content = num; // //посчитать число закрытых клеток без мин и если оно равно 0, сообщить о победе //---------------------------------------------------------- if (open == ((5 * 5) - mines)) { MessageBox.Show("Победа!"); sp.IsEnabled = false; } } if (num == 0) { gen.opennuli(n % 5, n / 5); Button[] buttons = new Button[sp.Children.Count]; sp.Children.CopyTo(buttons, 0); for (int i = 0; i < buttons.Length; i++) { if (gen.getCell(i % 5, i / 5) == 10) { open++; (buttons[i]).Foreground = Brushes.MidnightBlue; (buttons[i]).FontSize = 23; //запись в нажатую кнопку её номера (buttons[i]).Content = 0; (buttons[i]).Click -= Btn_Click; } } // //посчитать число закрытых клеток без мин и если оно равно 0, сообщить о победе //---------------------------------------------------------- if (open == ((5 * 5) - mines)) { MessageBox.Show("Победа!"); sp.IsEnabled = false; } } if (num == -1) { // int num; // входящая позиция от мышки //получаем массив кнопок из сетки Button[] buttons = new Button[sp.Children.Count]; sp.Children.CopyTo(buttons, 0); //перебираем все кнопки for (int i = 0; i < sp.Children.Count; i++) { //получаем координаты ячейки поля соответствующей кнопке int x = (int)(buttons[i]).Tag % 5; int y = (int)(buttons[i]).Tag / 5; //получаем значение из поля int m = gen.getCell(x, y); //если там мина if (m == -1) { StackPanel minePnl; //создание и инициализация переменной для хранения изображения мины Image img = new Image(); //загрузка изображения mine.jpg из папки imgs img.Source = mine; //инициализация и установка ориентации, можно вызвать в методе инициализации формы minePnl = new StackPanel(); minePnl.Orientation = Orientation.Horizontal; //установка толщины границы объекта minePnl.Margin = new Thickness(1); //добавление в объект изображения minePnl.Children.Add(img); buttons[i].Content = minePnl; } //bool success = minesCheck(); } sp.IsEnabled = false; } }