skoi_boi.Sprite (V1 (j, i)) jiSubIf
'Якщо поле № 2, то: Num = 2 Theni = 0 To 9j = 0 To 9_boi.P2 (j * 10 + i). Picture = Morskoi_boi.Sprite (V2 (j, i) ) jiSubIfSubHideSea (Num As Byte) '- приховує поле номер Num
'Якщо поле № 1, то:
If Num = 1 Then
For i = 0 To 9j = 0 To 9_boi.P1 (j * 10 + i). Picture = Morskoi_boi.Sprite (0) jiSubIf
'Якщо поле № 2, то:
If Num = 2 Then
For i = 0 To 9j = 0 To 9_boi.P2 (j * 10 + i). Picture = Morskoi_boi.Sprite (0) jiSubIf Sub
Sub SetShips (Num As Byte) '- розставляє кораблі на поле Num випадковим чином
Dim S0 (9, 9) As ByteSX (3) As Byte, SY (3) As Byte
10 'Початок розстановки
For i = 0 To 9
For j = 0 To 9 (j, 1) = 0j i
'Четверного
L = 4 'довжина
GoSub 100
'Тройниеm = 1 To 2 = 3' дліна100m
'Двойниеm = 1 To 3 = 2' довжина
GoSub 100
Next m
'Одинарні
For m = 1 To 4 = 1 'дліна100 m
GoTo 99
Exit Sub
'Розстановка кораблів
Err = False = 100
= tries - 1tries <0 Then Err = True: GoTo 10 = Int (Rnd * 10) = Int (Rnd * 10) X = 10 Or Y = 10 Then GoTo 100 = Int (Rnd * 2000) = Int (v/1000) i = 1 To L (i - 1) = X (i - 1) = Yv = 0 Then X = X + 1 Else Y = Y + 1ii = 1 To L = SX ( i - 1) = SY (i - 1) X> 9 Or Y> 9 Then GoTo 101j = -1 To 1k = -1 To 1 = X + jX1> 9 Or X1 <0 Then GoTo 102 = Y + kY1> 9 Or Y1 <0 Then GoTo 102S0 (X1, Y1) <> 0 Then GoTo 101
Next kjii = 1 To L = SX (i - 1) = SY (i - 1) (X, Y) = 1i
For i = 0 To 9j = 0 To 9Num = 1 Then S1 (j, i) = S0 (j, i) Else S2 (j, i) = S0 (j, i) jiSub Fire (Num, XPos, YPos) '- виробляє "вогонь" на комірці з координатами X, Y на полі Num. На виході видає змінні ShotResult і ShipL
X = XPos
Y = YPos
'Тест поля 1Num = 1 ThenS1 (X, Y) = 0 Then S1 (X, Y) = 2: V1 (X, Y) = 2: ShotResult = "Повз": Exit SubS1 (X, Y) = 1 Then S1 (X, Y) = 3: V1 (X, Y) = 3: GoSub 100: Exit SubS1 (X, Y) = 2 Then ShotResult = "Повторна стрільба (мимо) - хід зарахований ": Exit Sub S1 (X, Y) = 3 Then ShotResult =" Повторна стрільба (було попадання) - хід зарахований ": Exit Sub
End IfS2 (X, Y) = 0 Then S2 (X, Y) = 2: V2 (X, Y) = 2: ShotResult = "Повз": Exit SubS2 (X, Y) = 1 Then S2 (X, Y) = 3: V2 (X, Y) = 3: GoSub 100: Exit SubS2 (X, Y) = 2 Then ShotResult = "Повто...