Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
-18 / 0 / 0
Регистрация: 13.11.2022
Сообщений: 74

Реализуйте игру минер на поле 3×3 из кнопок (Button)

23.11.2022, 10:45. Показов 873. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Реализуйте игру минер на поле 3×3 из кнопок (Button). Первоe-
все кнопки не содержат надписей. При попытке нажатия на
кнопку на ней либо показывается количество мин, либо надпись «ми-
на!» и меняется цвет окна.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.11.2022, 10:45
Ответы с готовыми решениями:

Реализуйте игру минер на поле 3x3 из кнопок (Button)
Реализуйте игру минер на поле 3x3 из кнопок (Button). Первоначально все кнопки не содержат надписей. При попытке нажатия на кнопку на ней...

Реализовать игру минер на поле 3x3 из кнопок (Button)
Реализуйте игру минер на поле 3x3 из кнопок (Button). Первоначально все кнопки не содержат надписей. При попытке нажатия на кнопку на ней...

Игра минер на поле 3×3 из кнопок (Button)
При попытке нажатия на кнопку на ней либо показывается количество мин, либо надпись «ми-на!» и меняется цвет окна. Подскажите пожалуйста...

9
Любитель
 Аватар для Тим70
1045 / 754 / 161
Регистрация: 27.01.2019
Сообщений: 1,520
23.11.2022, 13:38
Student20003, По простому можно так
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
Public Class Form1
    Dim A(2, 2), M As Integer
    Dim R As New Random
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' щчищаем кнопки от названий
        For i = 1 To 9
            Me.Controls("Button" & i).Text = ""
        Next
        ' Заполняем поле минами
        For i = 0 To 2
            For j = 0 To 2
                A(i, j) = R.Next(0, 2)
            Next
        Next
    End Sub
 
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        If A(0, 1) = 1 Then
            Button2.Text = "Мина"
        Else
            M = A(0, 0) + A(0, 2) + A(1, 2) + A(1, 1) + A(1, 0) ' подсчитывае колличество мин вокруг кнопки
            Button2.Text = M
        End If
    End Sub
 
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        If A(0, 2) = 1 Then
            Button3.Text = "Мина"
        Else
            M = A(0, 1) + A(1, 1) + A(1, 2)
            Button3.Text = M
        End If
    End Sub
 
    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        If A(1, 0) = 1 Then
            Button4.Text = "Мина"
        Else
            M = A(0, 0) + A(0, 1) + A(2, 1) + A(1, 1) + A(2, 0)
            Button4.Text = M
        End If
    End Sub
 
    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        If A(1, 1) = 1 Then
            Button5.Text = "Мина"
        Else
            M = A(0, 0) + A(0, 1) + A(0, 2) + A(1, 2) + A(2, 2) + A(2, 1) + A(2, 0) + A(1, 0)
            Button5.Text = M
        End If
    End Sub
 
    Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
        If A(1, 2) = 1 Then
            Button6.Text = "Мина"
        Else
            M = A(0, 1) + A(0, 2) + A(2, 2) + A(2, 1) + A(1, 1)
            Button6.Text = M
        End If
    End Sub
 
    Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
        If A(2, 0) = 1 Then
            Button7.Text = "Мина"
        Else
            M = A(1, 0) + A(2, 1) + A(1, 1)
            Button7.Text = M
        End If
    End Sub
 
    Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
        If A(2, 1) = 1 Then
            Button8.Text = "Мина"
        Else
            M = A(2, 0) + A(1, 0) + A(1, 2) + A(1, 1) + A(2, 2)
            Button8.Text = M
        End If
    End Sub
 
    Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
        If A(2, 2) = 1 Then
            Button9.Text = "Мина"
        Else
            M = A(1, 2) + A(2, 1) + A(1, 1)
            Button9.Text = M
        End If
    End Sub
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If A(0, 0) = 1 Then
            Button1.Text = "Мина"
        Else
            M = A(0, 1) + A(1, 1) + A(1, 0)
            Button1.Text = M
        End If
    End Sub
End Class
Миниатюры
Реализуйте игру минер на поле 3×3 из кнопок (Button)  
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,757
Записей в блоге: 1
23.11.2022, 14:25
Тим70, я в шоке! А если поле будет 10х10, то 100 обработчиков будет?

Добавлено через 1 минуту
А ещё в "минёре" есть пустые клетки.
0
Любитель
 Аватар для Тим70
1045 / 754 / 161
Регистрация: 27.01.2019
Сообщений: 1,520
23.11.2022, 14:35
Uswer, Uswer, Я же написал " По простому ",конечно по уму надо какой то алгоритм проверки придумать,но думаю ,что ТС это и не нужно.

Добавлено через 2 минуты
Student20003, Да,про цвет забыл.
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
Public Class Form1
    Dim A(2, 2), M As Integer
    Dim R As New Random
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' щчищаем кнопки от названий
        For i = 1 To 9
            Me.Controls("Button" & i).Text = ""
        Next
        ' Заполняем поле минами
        For i = 0 To 2
            For j = 0 To 2
                A(i, j) = R.Next(0, 2)
            Next
        Next
    End Sub
 
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        If A(0, 1) = 1 Then
            Button2.Text = "Мина"
            Me.BackColor = Color.Red
        Else
            M = A(0, 0) + A(0, 2) + A(1, 2) + A(1, 1) + A(1, 0) ' подсчитывае колличество мин вокруг кнопки
            Button2.Text = M
            Me.BackColor = Color.FromArgb(240, 240, 240)
        End If
    End Sub
 
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        If A(0, 2) = 1 Then
            Button3.Text = "Мина"
            Me.BackColor = Color.Red
        Else
            M = A(0, 1) + A(1, 1) + A(1, 2)
            Button3.Text = M
            Me.BackColor = Color.FromArgb(240, 240, 240)
        End If
    End Sub
 
    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        If A(1, 0) = 1 Then
            Button4.Text = "Мина"
            Me.BackColor = Color.Red
        Else
            M = A(0, 0) + A(0, 1) + A(2, 1) + A(1, 1) + A(2, 0)
            Button4.Text = M
            Me.BackColor = Color.FromArgb(240, 240, 240)
        End If
    End Sub
 
    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        If A(1, 1) = 1 Then
            Button5.Text = "Мина"
            Me.BackColor = Color.Red
        Else
            M = A(0, 0) + A(0, 1) + A(0, 2) + A(1, 2) + A(2, 2) + A(2, 1) + A(2, 0) + A(1, 0)
            Button5.Text = M
            Me.BackColor = Color.FromArgb(240, 240, 240)
        End If
    End Sub
 
    Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
        If A(1, 2) = 1 Then
            Button6.Text = "Мина"
            Me.BackColor = Color.Red
        Else
            M = A(0, 1) + A(0, 2) + A(2, 2) + A(2, 1) + A(1, 1)
            Button6.Text = M
            Me.BackColor = Color.FromArgb(240, 240, 240)
        End If
    End Sub
 
    Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
        If A(2, 0) = 1 Then
            Button7.Text = "Мина"
            Me.BackColor = Color.Red
        Else
            M = A(1, 0) + A(2, 1) + A(1, 1)
            Button7.Text = M
            Me.BackColor = Color.FromArgb(240, 240, 240)
        End If
    End Sub
 
    Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
        If A(2, 1) = 1 Then
            Button8.Text = "Мина"
            Me.BackColor = Color.Red
        Else
            M = A(2, 0) + A(1, 0) + A(1, 2) + A(1, 1) + A(2, 2)
            Button8.Text = M
            Me.BackColor = Color.FromArgb(240, 240, 240)
        End If
    End Sub
 
    Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
        If A(2, 2) = 1 Then
            Button9.Text = "Мина"
            Me.BackColor = Color.Red
        Else
            M = A(1, 2) + A(2, 1) + A(1, 1)
            Button9.Text = M
            Me.BackColor = Color.FromArgb(240, 240, 240)
        End If
    End Sub
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If A(0, 0) = 1 Then
            Button1.Text = "Мина"
            Me.BackColor = Color.Red
        Else
            M = A(0, 1) + A(1, 1) + A(1, 0)
            Button1.Text = M
            Me.BackColor = Color.FromArgb(240, 240, 240)
        End If
    End Sub
End Class
0
-18 / 0 / 0
Регистрация: 13.11.2022
Сообщений: 74
23.11.2022, 16:22  [ТС]
Тим70, Спасибо.

Добавлено через 26 секунд
Uswer, Не я задания придумываю.
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,757
Записей в блоге: 1
23.11.2022, 22:11
Student20003, это понятно, что не Вы задания придумываете, однако сапёра можно сделать таким, что один и тот же код будет обрабатывать поле хоть 3х3, хоть 100х100 кнопок. Буквально недавно в одной из тем я дал простой код, который можно подкорректировать и применить к сапёру. Там и поле можно будет менять и сложность менять, но это всё надо дописать.
1
Любитель
 Аватар для Тим70
1045 / 754 / 161
Регистрация: 27.01.2019
Сообщений: 1,520
23.11.2022, 23:32
Uswer, Интересный код,жаль я в шарпе ни бум бум.Попробую автоматом перевести.Но для ТС несколько классов в проекте слишком круто .
0
Любитель
 Аватар для Тим70
1045 / 754 / 161
Регистрация: 27.01.2019
Сообщений: 1,520
24.11.2022, 07:57
Uswer, Перевел Ваш код,не там есть ошибки.Можете поправить?
Вложения
Тип файла: rar Вирус.rar (26.0 Кб, 5 просмотров)
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,757
Записей в блоге: 1
24.11.2022, 10:11
Тим70, я привёл код в рабочее состояние.
На базе этого кода можно написать сапёра.
Что можно использовать из этого кода:
1. общий подход построения игрового поля и привязку событий кликов
2. механизм открытия части поля, где смежные клетки пустые или с цифрой

Что можно/нужно изменить:
1. наследование класса VarusGameCell от Button
2. для ячеек ввести несколько состояний: пустая, с цифрой, с миной
3. сделать расстановку цифр около мин
4. ввести уровни сложности
5. добавить раскрытие ячеек при правом клике по цифре, как в оригинальном сапёре
6. добавить пометку кнопку миной
Вложения
Тип файла: zip VirusGameWinFormsApplication.zip (18.8 Кб, 28 просмотров)
2
Любитель
 Аватар для Тим70
1045 / 754 / 161
Регистрация: 27.01.2019
Сообщений: 1,520
24.11.2022, 10:21
Uswer, Спасибо,буду разбираться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.11.2022, 10:21
Помогаю со студенческими работами здесь

Реализуйте игру минер
Реализуйте игру минер на поле 3×3 из кнопок (Button). Перво- начально все кнопки не содержат надписей. При попытке нажатия на кнопку на...

Рандомный вывод кнопок button в поле
Волнует такой вопрос. Хочу вывести на страницу 8 кнопок button со значениями от 1 до 8. В идеале они должны располагаться по квадрату...

Ряд кнопок (Button), напротив каждой поле ввода (TextBox)
Разместите на форме ряд кнопок (Button), напротив каждой поле ввода (TextBox). Создайте обработчики события нажатия на данные кнопки,...

Разместите на форме ряд кнопок (Button), и одно поле ввода (TextBox)
Разместите на форме ряд кнопок (Button), и одно поле ввода (TextBox). Создайте обработчики события нажатия на данные кнопки, которые будут...

Разместите на форме ряд кнопок (Button), напротив каждой поле ввода (TextBox)
Помогите сделать задание. 7. Разместите на форме ряд кнопок (Button), напротив каждой поле ввода (TextBox). Создайте обработчики...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru