Реализация ГИС VBA
.pdfIf Inf = True Then Exit Sub strategy
Проверка Inf
If Inf = True Then Exit Sub End If
End Sub
Private Sub Label3_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Inf As Boolean
If Статус(1, 3) = 0 Then
Поле(1, 3).Picture = LoadPicture("D:\\cross.bmp") Статус(1, 3) = 1
k = k + 1
Проверка Inf
If Inf = True Then Exit Sub strategy
Проверка Inf
If Inf = True Then Exit Sub End If
End Sub
Private Sub Label4_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Inf As Boolean
If Статус(2, 1) = 0 Then
Поле(2, 1).Picture = LoadPicture("D:\\cross.bmp") Статус(2, 1) = 1
k = k + 1
Проверка Inf
If Inf = True Then Exit Sub strategy
Проверка Inf
If Inf = True Then Exit Sub End If
End Sub
Private Sub Label5_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Inf As Boolean
If Статус(2, 2) = 0 Then
Поле(2, 2).Picture = LoadPicture("D:\\cross.bmp")
Статус(2, 2) = 1 k = k + 1
Проверка Inf
If Inf = True Then Exit Sub strategy
Проверка Inf
If Inf = True Then Exit Sub End If
End Sub
Private Sub Label6_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Inf As Boolean
If Статус(2, 3) = 0 Then
Поле(2, 3).Picture = LoadPicture("D:\\cross.bmp")
Статус(2, 3) = 1 k = k + 1
Проверка Inf
If Inf = True Then Exit Sub strategy
Проверка Inf
If Inf = True Then Exit Sub End If
End Sub
Private Sub Label7_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Inf As Boolean
If Статус(3, 1) = 0 Then
Поле(3, 1).Picture = LoadPicture("D:\\cross.bmp") Статус(3, 1) = 1
k = k + 1
Проверка Inf
If Inf = True Then Exit Sub strategy
Проверка Inf
If Inf = True Then Exit Sub End If
End Sub
Private Sub Label8_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Inf As Boolean
If Статус(3, 2) = 0 Then
Поле(3, 2).Picture = LoadPicture("D:\\cross.bmp") Статус(3, 2) = 1
k = k + 1
Проверка Inf
If Inf = True Then Exit Sub strategy
Проверка Inf
If Inf = True Then Exit Sub End If
End Sub
Private Sub Label9_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Inf As Boolean
If Статус(3, 3) = 0 Then
Поле(3, 3).Picture = LoadPicture("D:\\cross.bmp")
Статус(3, 3) = 1 k = k + 1
Проверка Inf
If Inf = True Then Exit Sub strategy
Проверка Inf
If Inf = True Then Exit Sub End If
End Sub
Private Sub UserForm_initialize()
Set Поле(1, 1) = Label1
Set Поле(1, 2) = Label2
Set Поле(1, 3) = Label3
Set Поле(2, 1) = Label4
Set Поле(2, 2) = Label5
Set Поле(2, 3) = Label6
Set Поле(3, 1) = Label7
Set Поле(3, 2) = Label8
Set Поле(3, 3) = Label9
End Sub
Sub strategy()
Dim flag As Boolean If k = 1 Then strategy_1
Exit Sub
End If
If k = 2 And Su(0, 0) = 12 And Статус(2, 2) = 1 Then Поле(1, 3).Picture = LoadPicture("D:\\ou.bmp") Статус(1, 3) = 10
Exit Sub
End If
If k = 2 And Статус(2, 2) = 10 And (Su(0, 0) = 12 Or Su(0, 4) =
12) Then
Поле(1, 2).Picture = LoadPicture("D:\\ou.bmp") Статус(1, 2) = 10
Exit Sub
End If
If k = 2 And Статус(2, 2) = 10 And Su(0, 0) = 11 And (Статус(3, 2) = 1 Or Статус(2, 1) = 1) Then
Поле(3, 1).Picture = LoadPicture("D:\\ou.bmp")
Статус(3, 1) = 10 Exit Sub
End If
Состояние
Диагональ1 20, 10, flag
If flag = True Then Exit Sub
Диагональ2 20, 10, flag
If flag = True Then Exit Sub
For j = 1 To 3
Бок 20, 10, j, flag
If flag = True Then Exit Sub Next j
For i = 1 To 3
Верх 20, 10, i, flag
If flag = True Then Exit Sub Next i
Диагональ1 2, 10, flag
If flag = True Then Exit Sub
Диагональ2 2, 10, flag
If flag = True Then Exit Sub
For j = 1 To 3
Бок 2, 10, j, flag
If flag = True Then Exit Sub Next j
For i = 1 To 3
Верх 2, 10, i, flag
If flag = True Then Exit Sub Next i
Диагональ1 10, 10, flag
If flag = True Then Exit Sub
Диагональ2 10, 10, flag
If flag = True Then Exit Sub
For j = 1 To 3
Бок 10, 10, j, flag
If flag = True Then Exit Sub Next j
For i = 1 To 3
Верх 10, 10, i, flag
If flag = True Then Exit Sub Next i
For i = 1 To 3
For j = 1 To 3
If Статус(i, j) = 0 Then
Поле(i, j).Picture = LoadPicture("..\ou.bmp")
Статус(i, j) = 10
Exit Sub
End If
Next j
Next i
End Sub
Sub strategy_1()
If Статус(2, 2) = 0 Then
Поле(2, 2).Picture = LoadPicture("..\ou.bmp")
Статус(2, 2) = 10
Else
Поле(1, 1).Picture = LoadPicture("..\ou.bmp")
Статус(1, 1) = 10
End If
End Sub
Sub Проверка(ByRef Inf As Boolean)
Inf = False
Состояние
If Su(0, 0) = 3 Or Su(0, 0) = 30 Then
Сообщение Su(0, 0)
Inf = True Exit Sub End If
If Su(0, 4) = 3 Or Su(0, 4) = 30 Then
Сообщение Su(0, 4)
Inf = True Exit Sub End If
For j = 1 To 3
If Su(0, j) = 3 Or Su(0, j) = 30 Then
Сообщение Su(0, j)
Inf = True Exit Sub End If Next j
For i = 1 To 3
If Su(i, 0) = 3 Or Su(i, 0) = 30 Then
Сообщение Su(i, 0)
Inf = True Exit Sub End If Next i
For i = 1 To 3
For j = 1 To 3
If Статус(i, j) = 0 Then Exit Sub
Next j
Next i
MsgBox "Пока равная игра", vbExclamation, "Крестики-Нолики"
Inf = True End Sub
Sub Сообщение(Inf As Integer)
If Inf = 3 Then
Игра = Игра + 1
MsgBox "Выигрыш игрока", vbExclamation, "Крестики-Нолики" TextBox2.Text = CStr(Игра)
Exit Sub
End If
If Inf = 30 Then
Партия1 = Партия1 + 1
MsgBox "Компьютер пока сильнее", vbExclamation, "КрестикиНолики"
Exit Sub
End If
End Sub
Sub НачальноеСостояние()
For |
i |
= |
1 |
To |
3 |
For |
j |
= |
1 |
To |
3 |
Поле(i, |
j).Caption = "" |
||||
Поле(i, |
j).Picture = LoadPicture("") |
Поле(i, j).BorderStyle = fmBorderStyleSingle Статус(i, j) = 0
Next j
Next i k = 0
For i = 0 To 4
For j = 0 To 4 Su(i, j) = 0 Next j
Next i
End Sub
Sub Состояние()
Su(0, |
0) |
= 0 |
For i |
= 1 To 3 |
|
Su(0, |
0) |
= Su(0, 0) + Статус(1, i) |
Next i |
|
|
Su(0, |
4) |
= 0 |
For i |
= 1 To 3 |
|
Su(0, |
4) |
= Su(0, 4) + Статус(1, 4 - i) |
Next i |
|
|
For j |
= 1 To 3 |
|
Su(0, |
j) = 0 |
|
For i |
= 1 To 3 |
|
Su(0, |
j) = Su(0, j) + Статус(i, j) |
|
Next i |
|
|
Next j |
|
|
For i |
= 1 To 3 |
Su(i, 0) = 0
For j = 1 To 3
Su(i, 0) = Su(i, 0) + Статус(i, j)
Next j
Next i
End Sub
Sub Диагональ1(ByRef p, ByRef q, ByRef flag As Boolean) flag = False
If Su(0, 0) = p Then For i = 1 To 3
If Статус(i, i) = 0 Then
Поле(1, i).Picture = LoadPicture("..\ou.bmp")
Статус(i, i) = q flag = True Exit Sub
End If
Next i
End If
End Sub
Sub Диагональ2(ByRef p, ByRef q, ByRef flag As Boolean) flag = False
If Su(0, 4) = p Then For i = 1 To 3
If Статус(i, 4 - i) = 0 Then
Поле(1, 4 - i).Picture = LoadPicture("..\ou.bmp")
Статус(i, 4 - i) = q flag = True
Exit Sub
End If
Next i
End If
End Sub
Sub Бок(ByRef p, ByRef q, ByRef j, ByRef flag As Boolean) flag = False
If Su(0, j) = p Then For i = 1 To 3
If Статус(i, j) = 0 Then
Поле(i, j).Picture = LoadPicture("..\ou.bmp")
Статус(i, j) = q flag = True Exit Sub
End If
Next i
End If
End Sub
Sub Верх(ByRef p, ByRef q, ByRef i, ByRef flag As Boolean) flag = False
If Su(i, 0) = p Then For j = 1 To 3
If Статус(i, j) = 0 Then
Поле(i, j).Picture = LoadPicture("..\ou.bmp")
Статус(i, j) = q flag = True Exit Sub
End If
Next j
End If
End Sub
Лабораторная работа №4
Тема «Расчет маргинальной процентной ставки»