0 / 0 / 0
Регистрация: 23.07.2015
Сообщений: 6
1

Задача с шахматами

30.08.2015, 17:33. Показов 596. Ответов 10
Метки нет (Все метки)

12.Шахівниця представлена у вигляді двовимірного масиву розміру 8*8. Задано натуральні числа v1 і g1, які вказують номер вертикалі та горизонталі для поля, на якому знаходиться біла шахова фігура та змінні v2 і g2, які вказують відповідні координати чорної фігури. Визначити поля, позначивши їх «1», на які може піти перша фігура, не потрапивши під удар другої. Розглянути такі варіанти першої та другої фігури:

1) Тура та королева;
2) Тура та кінь;
3) Офіцер та офіцер;
4) Король та кінь;
5) Дві королеви.

Помогите, завтра защита практики.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2015, 17:33
Ответы с готовыми решениями:

Задача с шахматами на c++
Задача звучит так: Известно, что на поле 8х8 существует такая расстановка, при которой 8 ферзей не...

Задача с шахматами
На шахматной доске расставлены три фигуры. Используя стандартные правила шахматной игры, определить...

Помощь с шахматами
Вобщем задали нам задания с помощью условных операторов запрограммировать данные задачи. А так как...

Олимпиадная задача по программированию. PascalABC.NET. Задача L. Переключение между окнами
Когда пользователь работает в операционной системе Winux, у него часто запущено несколько...

10
3217 / 966 / 223
Регистрация: 29.05.2010
Сообщений: 2,080
30.08.2015, 17:40 2
Попробуй перевести на русский, не все понимают украинский язык.
0
kalbasiatka
30.08.2015, 17:41
  #3

Не по теме:

Цитата Сообщение от Dorano Посмотреть сообщение
Помогите, завтра защита практики.
В русском языке попрактикуйтесь.

0
0 / 0 / 0
Регистрация: 23.07.2015
Сообщений: 6
30.08.2015, 17:47  [ТС] 4
12.Шахивниця представлена в виде двумерного массива размера 8 * 8. Задано натуральные числа v1 и g1, которые указывают номер вертикали и горизонтали для поля, на котором находится белая шахматная фигура и переменные v2 и g2, которые указывают соответствующие координаты черной фигуры. Определить поля, обозначив их «1», на которые может пойти первая фигура, не попав под удар второй. Рассмотреть такие варианты первой и второй фигуры:

1) Тура и королева;
2) Тура и лошадь;
3) Офицер и офицер;
4) Король и лошадь;
5) Две королевы.
0
414 / 262 / 82
Регистрация: 27.10.2012
Сообщений: 860
30.08.2015, 17:58 5

Не по теме:

Шахматную доску принципиально не перевели?


Теперь осталось узнать, как ходят все эти фигуры и, что из VBA можно использовать для решения задачи.
0
0 / 0 / 0
Регистрация: 23.07.2015
Сообщений: 6
30.08.2015, 18:03  [ТС] 6
Ходят как обычные шахматные фигуры
0
2079 / 1232 / 464
Регистрация: 20.12.2014
Сообщений: 3,232
30.08.2015, 19:06 7
Цитата Сообщение от Dorano Посмотреть сообщение
Помогите, завтра защита практики
Вы немного поздновато спохватились. Если вы, хотя бы немного, имеете представление о шахматах, то должны отдавать себе отчет: сколько вариантов нужно учесть при составлении программы. Самый простой пример из ваших условий: офицер и офицер - нужно рассмотреть случаи, когда они находятся на одной диагонали и ограничить поля движения первой фигуры местоположением второй, при этом учесть, что само поле, где находится вторая фигура не попадает в разряд "подударных", потому что первая фигура "съест" вторую. То есть три варианта в одном. При этом, для офицеров, нужно учитывать, что в зависимости от их расположения перебор полей в цикле должен начинаться и заканчиваться абсолютно разными значениями. От 1 до 8 на больших диагоналях и от 7 до 8 на коротких отрезках. Про королев я, вообще, молчу.
Могу только подсказать, что если вы зададите массив полей mass(8,8), то (v и g - это и для v1 и g1, и для v2 и g2):

Для ладьи (туры) поля на которые она может попасть будут: mass(v,i) и mass(i,g), где i = 1 до 8

Для слона (офицера) поля будут следующие: mass(v+i,g+i), mass(v-i,g-i), mass(v+i,g-i), mass(v-i,g+i).

Для ферзя (королевы) = ладья + слон

Для коня (лошади): mass(v+1,g+2), mass(v+1,g-2), mass(v-1,g+2), mass(v-1,g-2), mass(v+2,g+1), mass(v+2,g-1), mass(v-2,g+1), mass(v-2,g-1).

Но это без учета того случая, который я описал выше для офицеров - то есть в случае их нахождения на одной горизонтали или вертикали надо учитывать исключение из "подударных" всех полей, начиная с координат второй фигуры.

Ну а дальше уж сами: делайте функции, циклы, учитывайте условия.
0
0 / 0 / 0
Регистрация: 23.07.2015
Сообщений: 6
30.08.2015, 19:28  [ТС] 8
спасибо большое.
0
2079 / 1232 / 464
Регистрация: 20.12.2014
Сообщений: 3,232
31.08.2015, 00:43 9
Завтра уже наступило, но защита, наверно, еще нет . Делать 5 разных вариантов было лень, поэтому сделал универсальный вариант для любого сочетания первой и второй фигур. Обозначения: К - конь (лошадь), Ф - ферзь (королева), С - слон (офицер), Л - ладья (тура). Выбранное сочетание фигур вводится через InputBox после ввода их координат. Код:
Кликните здесь для просмотра всего текста
В отдельном модуле нужно задать массивы:
Visual Basic
1
2
3
Public mass(8, 8) As Integer
Public mass1(8, 8) As Integer
Public mass2(8, 8) As Integer
В отдельном - сам макрос:
Visual Basic
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
Option Base 1
Sub chess()
Dim g1, v1, g2, v2, f1, f2
For i = 1 To 8
    For j = 1 To 8
        mass(i, j) = 0
        mass1(i, j) = 0
        mass2(i, j) = 0
    Next
Next
g1 = CInt(InputBox("g1="))
v1 = CInt(InputBox("v1="))
g2 = CInt(InputBox("g2="))
v2 = CInt(InputBox("v2="))
f1 = InputBox("f1=(К1,С1,Л1,Ф1)")
f2 = InputBox("f2=(К2,С2,Л2,Ф2)")
Select Case (f1)
    Case "К1"
        Call К1(g1, v1)
    Case "Л1"
        Call Л1(g1, v1, g2, v2, f2)
    Case "С1"
        Call С1(g1, v1, g2, v2, f2)
    Case "Ф1"
        Call Ф1(g1, v1, g2, v2, f2)
End Select
Select Case (f2)
    Case "К2"
        Call К2(g2, v2)
    Case "Л2"
        Call Л2(g2, v2)
    Case "С2"
        Call С2(g2, v2)
    Case "Ф2"
        Call Ф2(g2, v2)
End Select
For i = 1 To 8
    For j = 1 To 8
        mass(i, j) = mass1(i, j) + mass2(i, j)
    Next
Next
For i = 1 To 8
    For j = 1 To 8
        Cells(i, j) = mass(i, j)
        If Cells(i, j) = 1 Then Cells(i, j).Interior.ColorIndex = 6
    Next
Next
Cells(g1, v1) = f1
Cells(g2, v2) = f2
End Sub
 
Sub Л1(ByVal g1 As Integer, ByVal v1 As Integer, ByVal g2 As Integer, ByVal v2 As Integer, ByVal f2 As String)
For i = 1 To 8
    mass1(i, v1) = 1
    mass1(g1, i) = 1
    If f2 = "С2" Or f2 = "К2" Then
        If g1 = g2 And v1 < v2 And i > v2 Then mass1(g1, i) = 0
        If g1 = g2 And v1 > v2 And i < v2 Then mass1(g1, i) = 0
        If v1 = v2 And g1 < g2 And i > g2 Then mass1(i, v1) = 0
        If v1 = v2 And g1 > g2 And i < g2 Then mass1(i, v1) = 0
    End If
Next
mass1(g1, v1) = 1
End Sub
 
Sub Л2(ByVal g2 As Integer, ByVal v2 As Integer)
For i = 1 To 8
    mass2(i, v2) = -1
    mass2(g2, i) = -1
Next
mass2(g2, v2) = 0
End Sub
 
Sub С1(ByVal g1 As Integer, ByVal v1 As Integer, ByVal g2 As Integer, ByVal v2 As Integer, ByVal f2 As String)
For i = 0 To 7
    If (g1 + i) <= 8 And (v1 + i) <= 8 Then mass1(g1 + i, v1 + i) = 1
    If (g1 + i) <= 8 And (v1 - i) >= 1 Then mass1(g1 + i, v1 - i) = 1
    If (g1 - i) >= 1 And (v1 + i) <= 8 Then mass1(g1 - i, v1 + i) = 1
    If (g1 - i) >= 1 And (v1 - i) >= 1 Then mass1(g1 - i, v1 - i) = 1
    If f2 = "Л2" Or f2 = "К2" Then
        If (g1 + i) <= 8 And (v1 + i) <= 8 And (g1 - g2) = (v1 - v2) And (v1 - v2) < 0 And i > Abs(v1 - v2) Then mass1(g1 + i, v1 + i) = 0
        If (g1 - i) >= 1 And (v1 - i) >= 1 And (g1 - g2) = (v1 - v2) And (v1 - v2) > 0 And i > Abs(v1 - v2) Then mass1(g1 - i, v1 - i) = 0
        If (g1 - i) >= 1 And (v1 + i) <= 8 And (g1 - g2) = -(v1 - v2) And (v1 - v2) < 0 And i > Abs(v1 - v2) Then mass1(g1 - i, v1 + i) = 0
        If (g1 + i) <= 8 And (v1 - i) >= 1 And (g1 - g2) = -(v1 - v2) And (v1 - v2) > 0 And i > Abs(v1 - v2) Then mass1(g1 + i, v1 - i) = 0
    End If
Next
mass1(g1, v1) = 1
End Sub
 
Sub С2(ByVal g2 As Integer, ByVal v2 As Integer)
For i = 0 To 7
    If (g2 + i) <= 8 And (v2 + i) <= 8 Then mass2(g2 + i, v2 + i) = -1
    If (g2 + i) <= 8 And (v2 - i) >= 1 Then mass2(g2 + i, v2 - i) = -1
    If (g2 - i) >= 1 And (v2 + i) <= 8 Then mass2(g2 - i, v2 + i) = -1
    If (g2 - i) >= 1 And (v2 - i) >= 1 Then mass2(g2 - i, v2 - i) = -1
Next
mass2(g2, v2) = 0
End Sub
 
Sub Ф2(ByVal g2 As Integer, ByVal v2 As Integer)
For i = 0 To 7
    mass2(i + 1, v2) = -1
    mass2(g2, i + 1) = -1
    If (g2 + i) <= 8 And (v2 + i) <= 8 Then mass2(g2 + i, v2 + i) = -1
    If (g2 + i) <= 8 And (v2 - i) >= 1 Then mass2(g2 + i, v2 - i) = -1
    If (g2 - i) >= 1 And (v2 + i) <= 8 Then mass2(g2 - i, v2 + i) = -1
    If (g2 - i) >= 1 And (v2 - i) >= 1 Then mass2(g2 - i, v2 - i) = -1
Next
mass2(g2, v2) = 0
End Sub
 
Sub Ф1(ByVal g1 As Integer, ByVal v1 As Integer, ByVal g2 As Integer, ByVal v2 As Integer, ByVal f2 As String)
For i = 0 To 7
    mass1(i + 1, v1) = 1
    mass1(g1, i + 1) = 1
    If f2 = "С2" Or f2 = "К2" Then
        If g1 = g2 And v1 < v2 And (i + 1) > v2 Then mass1(g1, i + 1) = 0
        If g1 = g2 And v1 > v2 And (i + 1) < v2 Then mass1(g1, i + 1) = 0
        If v1 = v2 And g1 < g2 And (i + 1) > g2 Then mass1(i + 1, v1) = 0
        If v1 = v2 And g1 > g2 And (i + 1) < g2 Then mass1(i + 1, v1) = 0
    End If
    If (g1 + i) <= 8 And (v1 + i) <= 8 Then mass1(g1 + i, v1 + i) = 1
    If (g1 + i) <= 8 And (v1 - i) >= 1 Then mass1(g1 + i, v1 - i) = 1
    If (g1 - i) >= 1 And (v1 + i) <= 8 Then mass1(g1 - i, v1 + i) = 1
    If (g1 - i) >= 1 And (v1 - i) >= 1 Then mass1(g1 - i, v1 - i) = 1
    If f2 = "Л2" Or f2 = "К2" Then
        If (g1 + i) <= 8 And (v1 + i) <= 8 And (g1 - g2) = (v1 - v2) And (v1 - v2) < 0 And i > Abs(v1 - v2) Then mass1(g1 + i, v1 + i) = 0
        If (g1 - i) >= 1 And (v1 - i) >= 1 And (g1 - g2) = (v1 - v2) And (v1 - v2) > 0 And i > Abs(v1 - v2) Then mass1(g1 - i, v1 - i) = 0
        If (g1 - i) >= 1 And (v1 + i) <= 8 And (g1 - g2) = -(v1 - v2) And (v1 - v2) < 0 And i > Abs(v1 - v2) Then mass1(g1 - i, v1 + i) = 0
        If (g1 + i) <= 8 And (v1 - i) >= 1 And (g1 - g2) = -(v1 - v2) And (v1 - v2) > 0 And i > Abs(v1 - v2) Then mass1(g1 + i, v1 - i) = 0
    End If
Next
mass1(g1, v1) = 1
End Sub
 
Sub К1(ByVal g1 As Integer, ByVal v1 As Integer)
If g1 > 2 And v1 <= 7 Then mass1(g1 - 2, v1 + 1) = 1
If g1 > 2 And v1 > 1 Then mass1(g1 - 2, v1 - 1) = 1
If g1 > 1 And v1 <= 6 Then mass1(g1 - 1, v1 + 2) = 1
If g1 > 1 And v1 > 2 Then mass1(g1 - 1, v1 - 2) = 1
If v1 > 2 And g1 <= 7 Then mass1(g1 + 1, v1 - 2) = 1
If g1 <= 7 And v1 <= 6 Then mass1(g1 + 1, v1 + 2) = 1
If v1 > 1 And g1 <= 6 Then mass1(g1 + 2, v1 - 1) = 1
If g1 <= 6 And v1 <= 7 Then mass1(g1 + 2, v1 + 1) = 1
mass1(g1, v1) = 1
End Sub
 
Sub К2(ByVal g2 As Integer, ByVal v2 As Integer)
If g2 > 2 And v2 <= 7 Then mass2(g2 - 2, v2 + 1) = -1
If g2 > 2 And v2 > 1 Then mass2(g2 - 2, v2 - 1) = -1
If g2 > 1 And v2 <= 6 Then mass2(g2 - 1, v2 + 2) = -1
If g2 > 1 And v2 > 2 Then mass2(g2 - 1, v2 - 2) = -1
If v2 > 2 And g2 <= 7 Then mass2(g2 + 1, v2 - 2) = -1
If g2 <= 7 And v2 <= 6 Then mass2(g2 + 1, v2 + 2) = -1
If v2 > 1 And g2 <= 6 Then mass2(g2 + 2, v2 - 1) = -1
If g2 <= 6 And v2 <= 7 Then mass2(g2 + 2, v2 + 1) = -1
mass2(g2, v2) = 0
End Sub

Чтобы наглядно продемонстрировать, что всё работает - во вложении файл Excel с программой. Клетки с единицами выделяются желтым цветом. Запуск кнопкой. При открытии нужно разрешить использование макросов.
Вложения
Тип файла: rar chess.rar (21.8 Кб, 6 просмотров)
0
2079 / 1232 / 464
Регистрация: 20.12.2014
Сообщений: 3,232
31.08.2015, 00:50 10
Только сейчас заметил, что в четвертом варианте не королева, а король Но, доделать уже не успею На защите скажите, что перепутали с королевой. Может сойдет.
0
2079 / 1232 / 464
Регистрация: 20.12.2014
Сообщений: 3,232
31.08.2015, 01:08 11
Добавил, всё-таки, короля (Кр1) в первые фигуры. Исправленный код:
Кликните здесь для просмотра всего текста
Visual Basic
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
Option Base 1
Sub chess()
Dim g1, v1, g2, v2, f1, f2
For i = 1 To 8
    For j = 1 To 8
        mass(i, j) = 0
        mass1(i, j) = 0
        mass2(i, j) = 0
    Next
Next
g1 = CInt(InputBox("g1="))
v1 = CInt(InputBox("v1="))
g2 = CInt(InputBox("g2="))
v2 = CInt(InputBox("v2="))
f1 = InputBox("f1=(К1,С1,Л1,Ф1,Кр1)")
f2 = InputBox("f2=(К2,С2,Л2,Ф2)")
Select Case (f1)
    Case "К1"
        Call К1(g1, v1)
    Case "Л1"
        Call Л1(g1, v1, g2, v2, f2)
    Case "С1"
        Call С1(g1, v1, g2, v2, f2)
    Case "Ф1"
        Call Ф1(g1, v1, g2, v2, f2)
    Case "Кр1"
        Call Кр1(g1, v1)
End Select
Select Case (f2)
    Case "К2"
        Call К2(g2, v2)
    Case "Л2"
        Call Л2(g2, v2)
    Case "С2"
        Call С2(g2, v2)
    Case "Ф2"
        Call Ф2(g2, v2)
End Select
For i = 1 To 8
    For j = 1 To 8
        mass(i, j) = mass1(i, j) + mass2(i, j)
    Next
Next
For i = 1 To 8
    For j = 1 To 8
        Cells(i, j) = mass(i, j)
        If Cells(i, j) = 1 Then Cells(i, j).Interior.ColorIndex = 6
    Next
Next
Cells(g1, v1) = f1
Cells(g2, v2) = f2
End Sub
 
Sub Л1(ByVal g1 As Integer, ByVal v1 As Integer, ByVal g2 As Integer, ByVal v2 As Integer, ByVal f2 As String)
For i = 1 To 8
    mass1(i, v1) = 1
    mass1(g1, i) = 1
    If f2 = "С2" Or f2 = "К2" Then
        If g1 = g2 And v1 < v2 And i > v2 Then mass1(g1, i) = 0
        If g1 = g2 And v1 > v2 And i < v2 Then mass1(g1, i) = 0
        If v1 = v2 And g1 < g2 And i > g2 Then mass1(i, v1) = 0
        If v1 = v2 And g1 > g2 And i < g2 Then mass1(i, v1) = 0
    End If
Next
mass1(g1, v1) = 1
End Sub
 
Sub Л2(ByVal g2 As Integer, ByVal v2 As Integer)
For i = 1 To 8
    mass2(i, v2) = -1
    mass2(g2, i) = -1
Next
mass2(g2, v2) = 0
End Sub
 
Sub С1(ByVal g1 As Integer, ByVal v1 As Integer, ByVal g2 As Integer, ByVal v2 As Integer, ByVal f2 As String)
For i = 0 To 7
    If (g1 + i) <= 8 And (v1 + i) <= 8 Then mass1(g1 + i, v1 + i) = 1
    If (g1 + i) <= 8 And (v1 - i) >= 1 Then mass1(g1 + i, v1 - i) = 1
    If (g1 - i) >= 1 And (v1 + i) <= 8 Then mass1(g1 - i, v1 + i) = 1
    If (g1 - i) >= 1 And (v1 - i) >= 1 Then mass1(g1 - i, v1 - i) = 1
    If f2 = "Л2" Or f2 = "К2" Then
        If (g1 + i) <= 8 And (v1 + i) <= 8 And (g1 - g2) = (v1 - v2) And (v1 - v2) < 0 And i > Abs(v1 - v2) Then mass1(g1 + i, v1 + i) = 0
        If (g1 - i) >= 1 And (v1 - i) >= 1 And (g1 - g2) = (v1 - v2) And (v1 - v2) > 0 And i > Abs(v1 - v2) Then mass1(g1 - i, v1 - i) = 0
        If (g1 - i) >= 1 And (v1 + i) <= 8 And (g1 - g2) = -(v1 - v2) And (v1 - v2) < 0 And i > Abs(v1 - v2) Then mass1(g1 - i, v1 + i) = 0
        If (g1 + i) <= 8 And (v1 - i) >= 1 And (g1 - g2) = -(v1 - v2) And (v1 - v2) > 0 And i > Abs(v1 - v2) Then mass1(g1 + i, v1 - i) = 0
    End If
Next
mass1(g1, v1) = 1
End Sub
 
Sub С2(ByVal g2 As Integer, ByVal v2 As Integer)
For i = 0 To 7
    If (g2 + i) <= 8 And (v2 + i) <= 8 Then mass2(g2 + i, v2 + i) = -1
    If (g2 + i) <= 8 And (v2 - i) >= 1 Then mass2(g2 + i, v2 - i) = -1
    If (g2 - i) >= 1 And (v2 + i) <= 8 Then mass2(g2 - i, v2 + i) = -1
    If (g2 - i) >= 1 And (v2 - i) >= 1 Then mass2(g2 - i, v2 - i) = -1
Next
mass2(g2, v2) = 0
End Sub
 
Sub Ф2(ByVal g2 As Integer, ByVal v2 As Integer)
For i = 0 To 7
    mass2(i + 1, v2) = -1
    mass2(g2, i + 1) = -1
    If (g2 + i) <= 8 And (v2 + i) <= 8 Then mass2(g2 + i, v2 + i) = -1
    If (g2 + i) <= 8 And (v2 - i) >= 1 Then mass2(g2 + i, v2 - i) = -1
    If (g2 - i) >= 1 And (v2 + i) <= 8 Then mass2(g2 - i, v2 + i) = -1
    If (g2 - i) >= 1 And (v2 - i) >= 1 Then mass2(g2 - i, v2 - i) = -1
Next
mass2(g2, v2) = 0
End Sub
 
Sub Ф1(ByVal g1 As Integer, ByVal v1 As Integer, ByVal g2 As Integer, ByVal v2 As Integer, ByVal f2 As String)
For i = 0 To 7
    mass1(i + 1, v1) = 1
    mass1(g1, i + 1) = 1
    If f2 = "С2" Or f2 = "К2" Then
        If g1 = g2 And v1 < v2 And (i + 1) > v2 Then mass1(g1, i + 1) = 0
        If g1 = g2 And v1 > v2 And (i + 1) < v2 Then mass1(g1, i + 1) = 0
        If v1 = v2 And g1 < g2 And (i + 1) > g2 Then mass1(i + 1, v1) = 0
        If v1 = v2 And g1 > g2 And (i + 1) < g2 Then mass1(i + 1, v1) = 0
    End If
    If (g1 + i) <= 8 And (v1 + i) <= 8 Then mass1(g1 + i, v1 + i) = 1
    If (g1 + i) <= 8 And (v1 - i) >= 1 Then mass1(g1 + i, v1 - i) = 1
    If (g1 - i) >= 1 And (v1 + i) <= 8 Then mass1(g1 - i, v1 + i) = 1
    If (g1 - i) >= 1 And (v1 - i) >= 1 Then mass1(g1 - i, v1 - i) = 1
    If f2 = "Л2" Or f2 = "К2" Then
        If (g1 + i) <= 8 And (v1 + i) <= 8 And (g1 - g2) = (v1 - v2) And (v1 - v2) < 0 And i > Abs(v1 - v2) Then mass1(g1 + i, v1 + i) = 0
        If (g1 - i) >= 1 And (v1 - i) >= 1 And (g1 - g2) = (v1 - v2) And (v1 - v2) > 0 And i > Abs(v1 - v2) Then mass1(g1 - i, v1 - i) = 0
        If (g1 - i) >= 1 And (v1 + i) <= 8 And (g1 - g2) = -(v1 - v2) And (v1 - v2) < 0 And i > Abs(v1 - v2) Then mass1(g1 - i, v1 + i) = 0
        If (g1 + i) <= 8 And (v1 - i) >= 1 And (g1 - g2) = -(v1 - v2) And (v1 - v2) > 0 And i > Abs(v1 - v2) Then mass1(g1 + i, v1 - i) = 0
    End If
Next
mass1(g1, v1) = 1
End Sub
 
Sub К1(ByVal g1 As Integer, ByVal v1 As Integer)
If g1 > 2 And v1 <= 7 Then mass1(g1 - 2, v1 + 1) = 1
If g1 > 2 And v1 > 1 Then mass1(g1 - 2, v1 - 1) = 1
If g1 > 1 And v1 <= 6 Then mass1(g1 - 1, v1 + 2) = 1
If g1 > 1 And v1 > 2 Then mass1(g1 - 1, v1 - 2) = 1
If v1 > 2 And g1 <= 7 Then mass1(g1 + 1, v1 - 2) = 1
If g1 <= 7 And v1 <= 6 Then mass1(g1 + 1, v1 + 2) = 1
If v1 > 1 And g1 <= 6 Then mass1(g1 + 2, v1 - 1) = 1
If g1 <= 6 And v1 <= 7 Then mass1(g1 + 2, v1 + 1) = 1
mass1(g1, v1) = 1
End Sub
 
Sub К2(ByVal g2 As Integer, ByVal v2 As Integer)
If g2 > 2 And v2 <= 7 Then mass2(g2 - 2, v2 + 1) = -1
If g2 > 2 And v2 > 1 Then mass2(g2 - 2, v2 - 1) = -1
If g2 > 1 And v2 <= 6 Then mass2(g2 - 1, v2 + 2) = -1
If g2 > 1 And v2 > 2 Then mass2(g2 - 1, v2 - 2) = -1
If v2 > 2 And g2 <= 7 Then mass2(g2 + 1, v2 - 2) = -1
If g2 <= 7 And v2 <= 6 Then mass2(g2 + 1, v2 + 2) = -1
If v2 > 1 And g2 <= 6 Then mass2(g2 + 2, v2 - 1) = -1
If g2 <= 6 And v2 <= 7 Then mass2(g2 + 2, v2 + 1) = -1
mass2(g2, v2) = 0
End Sub
 
Sub Кр1(ByVal g1 As Integer, ByVal v1 As Integer)
If g1 > 1 And v1 > 1 Then mass1(g1 - 1, v1 - 1) = 1
If g1 > 1 Then mass1(g1 - 1, v1) = 1
If g1 > 1 And v1 <= 7 Then mass1(g1 - 1, v1 + 1) = 1
If v1 > 1 Then mass1(g1, v1 - 1) = 1
If v1 <= 7 Then mass1(g1, v1 + 1) = 1
If g1 <= 7 And v1 > 1 Then mass1(g1 + 1, v1 - 1) = 1
If g1 <= 7 Then mass1(g1 + 1, v1) = 1
If g1 <= 7 And v1 <= 7 Then mass1(g1 + 1, v1 + 1) = 1
mass1(g1, v1) = 1
End Sub
Вложения
Тип файла: rar chess1.rar (21.5 Кб, 8 просмотров)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2015, 01:08
Помогаю со студенческими работами здесь

Васильев C# Глава 7 задача 8 (Просьба объяснить формулировку(задача внутри)
Текст задачи Напишите программу с классом, у которого есть текстовое поле. Значение текстовому...

Васильев C# Глава 8 задача 2 (Просьба объяснить формулировку(задача внутри)
Текст задачи Написать программу , в которой есть класс с полем, являющимся ссылкой на одномерный...

Задача: В некотором государстве ввели компьютерный паспорт гражданина.(задача)
Доброго времени суток,форумчане. Хотелось бы попросить помощи в решении одной задачи от умных...

Задача на перебор вариантов. Задача Л.Эйлера. Про чиновника
Задача Л.Эйлера. Некий чиновник купил лошадей и быков на сумму 1770 талеров. За каждую лошадь он...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru