Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Реализация ГИС VBA

.pdf
Скачиваний:
10
Добавлен:
02.03.2016
Размер:
1.8 Mб
Скачать

If 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

Тема «Расчет маргинальной процентной ставки»