Option Explicit
Dim comable As Boolean
Dim comturn As Boolean
Dim blackturn As Boolean
Dim whiteturn As Boolean
Dim comcolor As Long
Dim black As Long
Dim white As Long
Dim i As Single
Dim j As Single
Dim table(-5 To 20, -5 To 20) As Integer'ô˶άʾ'

Private Sub restart()
Form_Paint
For i = 0 To 15
 For j = 0 To 15
 table(i, j) = 0
 Next j
Next i
black = RGB(0, 0, 0)
white = RGB(255, 255, 255)
If comturn = True Then Call goes(7, 7)
End Sub

Private Sub goes(i As Single, j As Single) 'Խߵtable(i,j)'
If comturn = True And table(i, j) = 0 Then
FillColor = comcolor
FillStyle = 0
Dim x As Single
Dim y As Single
x = i * 300 + 100
y = j * 300 + 100
Circle (x, y), 100
comturn = False
table(i, j) = 2
End If
End Sub

Private Sub about_Click()
frmAbout.Show
End Sub

Private Sub doubleman_Click()'˫'
blackturn = True
whiteturn = False
comable = False
comturn = False
restart
End Sub

Private Sub exit_Click()
Unload Me
End
End Sub

Private Sub Form_Load()
Form_Paint
comturn = True
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) ''
Dim a As Single
Dim b As Single
Dim m As Single
Dim n As Single
If (x - 100) Mod 300 < 150 Then
   a = x - (x - 100) Mod 300
   ElseIf (x - 100) Mod 300 > 150 Then
   a = x + 300 - (x - 100) Mod 300
End If
If (y - 100) Mod 300 < 150 Then
   b = y - (y - 100) Mod 300
   ElseIf (y - 100) Mod 300 > 150 Then
   b = y + 300 - (y - 100) Mod 300
End If

i = (a - 100) / 300
j = (b - 100) / 300
If (comturn = False) And (table(i, j) = 0) Then
If blackturn = True Then
 FillColor = black
 Else
FillColor = white
End If
FillStyle = 0
Circle (a, b), 100
table(i, j) = 1

If comable = False Then
blackturn = blackturn Xor True
End If '˫

If comable = True Then
comturn = True
judgeman
comdo
judgecom
End If '˻ս

End If
End Sub
Private Sub judgeman()'жǷʤ'
 Dim i As Single
 Dim j As Single
 For i = 0 To 15
  For j = 0 To 15
  If table(i, j) * table(i, j + 1) * table(i, j + 2) * table(i, j + 3) * table(i, j + 4) = 1 Then
      MsgBox "you win."
  ElseIf table(i, j) * table(i + 1, j) * table(i + 2, j) * table(i + 3, j) * table(i + 4, j) = 1 Then
      MsgBox "you win."
  ElseIf table(i, j) * table(i + 1, j + 1) * table(i + 2, j + 2) * table(i + 3, j + 3) * table(i + 4, j + 4) = 1 Then
      MsgBox "you win."
  ElseIf table(i, j) * table(i - 1, j + 1) * table(i - 2, j + 2) * table(i - 3, j + 3) * table(i - 4, j + 4) = 1 Then
      MsgBox "you win."
  End If
 Next j
 Next i
End Sub
Private Sub judgecom()'жϵǷʤ'
Dim i As Single
Dim j As Single
For i = 0 To 15
For j = 0 To 15
If table(i, j) * table(i, j + 1) * table(i, j + 2) * table(i, j + 3) * table(i, j + 4) = 32 Then
      MsgBox "sory,you fail."
  ElseIf table(i, j) * table(i + 1, j) * table(i + 2, j) * table(i + 3, j) * table(i + 4, j) = 32 Then
      MsgBox "sory,your fail."
  ElseIf table(i, j) * table(i + 1, j + 1) * table(i + 2, j + 2) * table(i + 3, j + 3) * table(i + 4, j + 4) = 32 Then
      MsgBox "sory,you fail."
  ElseIf table(i, j) * table(i - 1, j + 1) * table(i - 2, j + 2) * table(i - 3, j + 3) * table(i - 4, j + 4) = 32 Then
      MsgBox "sory,you fail."
End If
Next j
Next i
End Sub

Private Function wantfive(i, j, k) As Boolean 'ʽ1'
If table(i, j) = 0 And (table(i - 4, j) * table(i - 3, j) * table(i - 2, j) * table(i - 1, j) = k * k * k * k _
                      Or table(i - 4, j - 4) * table(i - 3, j - 3) * table(i - 2, j - 2) * table(i - 1, j - 1) = k * k * k * k _
                      Or table(i, j - 4) * table(i, j - 3) * table(i, j - 2) * table(i, j - 1) = k * k * k * k _
                      Or table(i + 1, j - 1) * table(i + 2, j - 2) * table(i + 3, j - 3) * table(i + 4, j - 4) = k * k * k * k _
                      Or table(i + 1, j) * table(i + 2, j) * table(i + 3, j) * table(i + 4, j) = k * k * k * k _
                      Or table(i + 1, j + 1) * table(i + 2, j + 2) * table(i + 3, j + 3) * table(i + 4, j + 4) = k * k * k * k _
                      Or table(i, j + 1) * table(i, j + 2) * table(i, j + 3) * table(i, j + 4) = k * k * k * k _
                      Or table(i - 1, j + 1) * table(i - 2, j + 2) * table(i - 3, j + 3) * table(i - 4, j + 4) = k * k * k * k _
                      Or table(i - 3, i) * table(i - 2, j) * table(i - 1, j) * table(i + 1, j) = k * k * k * k _
                      Or table(i - 3, j - 3) * table(i - 2, j - 2) * table(i - 1, j - 1) * table(i + 1, j + 1) = k * k * k * k _
                      Or table(i, j - 3) * table(i, j - 2) * table(i, j - 1) * table(i, j + 1) = k * k * k * k _
                      Or table(i + 1, j - 1) * table(i + 2, j - 2) * table(i + 3, j - 3) * table(i - 1, j + 1) = k * k * k * k _
                      Or table(i + 1, j) * table(i + 2, j) * table(i + 3, j) * table(i - 1, j) = k * k * k * k _
                      Or table(i + 1, j + 1) * table(i + 2, j + 2) * table(i + 3, j + 3) * table(i - 1, j - 1) = k * k * k * k _
                      Or table(i, j + 1) * table(i, j + 2) * table(i, j + 3) * table(i, j - 1) = k * k * k * k _
                      Or table(i - 1, j + 1) * table(i - 2, j + 2) * table(i - 3, j + 3) * table(i + 1, j - 1) = k * k * k * k _
                      Or table(i - 2, j) * table(i - 1, j) * table(i + 1, j) * table(i + 2, j) = k * k * k * k _
                      Or table(i-1,j-1)*table(i-2,j-2)*table(i+1,j+1)*table(i - 2, j - 2) = k * k * k * k _
                      Or table(i, j - 2) * table(i, j - 1) * table(i, j + 1) * table(i, j + 2) = k * k * k * k _
                      Or table(i + 1, j - 1) * table(i + 2, j - 2) * table(i - 1, j + 1) * table(i - 2, j + 2) = k * k * k * k _
                    ) Then wantfive = True
                    
End Function
Private Function wantfour(i, j, k) As Boolean'ʽ2'
If table(i, j) = 0 And ((table(i - 3, j) = 0 And table(i + 2, j) = 0 And table(i - 2, j) * table(i - 1, j) * table(i + 1, j) = k * k * k) _
                     Or (table(i - 3, j - 3) = 0 And table(i + 2, j + 2) = 0 And table(i - 2, j - 2) * table(i - 1, j - 1) * table(i + 1, j + 1) = k * k * k) _
                     Or (table(i, j - 3) = 0 And table(i, j + 2) = 0 And table(i, j - 2) * table(i, j - 1) * table(i, j + 1) = k * k * k) _
                     Or (table(i + 3, j - 3) = 0 And table(i - 2, j + 2) = 0 And table(i + 2, j - 2) * table(i + 1, j - 1) * table(i - 1, j + 1) = k * k * k) _
                     Or (table(i + 3, j) = 0 And table(i - 2, j) = 0 And table(i + 2, j) * table(i + 1, j) * table(i - 1, j) = k * k * k) _
                     Or (table(i + 3, j + 3) = 0 And table(i - 2, j - 2) = 0 And table(i + 2, j + 2) * table(i + 1, j + 1) * table(i - 1, j - 1) = k * k * k) _
                     Or (table(i, j + 3) = 0 And table(i, j - 2) = 0 And table(i, j + 1) * table(i, j + 2) * table(i, j - 1) = k * k * k) _
                     Or (table(i - 3, j + 3) = 0 And table(i + 2, j - 2) = 0 And table(i - 2, j + 2) * table(i - 1, j + 1) * table(i + 1, j - 1) = k * k * k) _
                    ) Then wantfour = True
                                           
 End Function
 Private Function wantfour1(i, j, k) As Boolean'ʽ3'
 Dim a(0 To 7) As Single
 Dim n As Single
 a(0) = table(i - 3, j) * table(i - 2, j) * table(i - 1, j)
 a(1) = table(i - 3, j - 3) * table(i - 2, j - 2) * table(i - 1, j - 1)
 a(2) = table(i, j - 3) * table(i, j - 2) * table(i, j - 1)
 a(3) = table(i + 3, j - 3) * table(i + 2, j - 2) * table(i + 1, j - 1)
 a(4) = table(i + 3, j) * table(i + 2, j) * table(i + 1, j)
 a(5) = table(i + 1, j + 1) * table(i + 2, j + 2) * table(i + 3, j + 3)
 a(6) = table(i, j + 1) * table(i, j + 2) * table(i, j + 3)
 a(7) = table(i - 1, j + 1) * table(i - 2, j + 2) * table(i - 3, j + 3)
 Dim b(0 To 7) As Single
 b(0) = table(i + 1, j)
 b(1) = table(i + 1, j + 1)
 b(2) = table(i, j + 1)
 b(3) = table(i - 1, j + 1)
 b(4) = table(i - 1, j)
 b(5) = table(i - 1, j - 1)
 b(6) = table(i, j - 1)
 b(7) = table(i + 1, j - 1)
 For n = 0 To 7
 If table(i, j) = 0 And b(n) = 0 And a(n) = k * k * k Then
  wantfour1 = True
 End If
 Next n
  
 End Function
Private Function want231(i, j, k) As Boolean'ʽ4'
Dim a(0 To 7) As Single
 a(0) = table(i - 2, j) * table(i - 1, j)
 a(1) = table(i - 2, j - 2) * table(i - 1, j - 1)
 a(2) = table(i, j - 2) * table(i, j - 1)
 a(3) = table(i + 2, j - 2) * table(i + 1, j - 1)
 a(4) = table(i + 1, j) * table(i + 2, j)
 a(5) = table(i + 1, j + 1) * table(i + 2, j + 2)
 a(6) = table(i, j + 1) * table(i, j + 2)
 a(7) = table(i - 1, j + 1) * table(i - 2, j + 2)

  If table(i, j) = 0 And ((table(i - 3, j) <> 3 - k And table(i - 3, j - 3) <> 3 - k And a(0) * a(1) = k * k * k * k) _
                     Or (table(i - 3, j) <> 3 - k And table(i, j - 3) <> 3 - k And a(0) * a(2) = k * k * k * k) _
                     Or (table(i - 3, j) <> 3 - k And table(i + 3, j - 3) <> 3 - k And a(0) * a(3) = k * k * k * k) _
                     Or (table(i - 3, j) <> 3 - k And table(i + 3, j + 3) <> 3 - k And a(0) * a(5) = k * k * k * k) _
                     Or (table(i - 3, j) <> 3 - k And table(i, j + 3) <> 3 - k And a(0) * a(6) = k * k * k * k) _
                     Or (table(i - 3, j) <> 3 - k And table(i - 3, j + 3) <> 3 - k And a(0) * a(7) = k * k * k * k) _
                     Or (table(i - 3, j - 3) <> 3 - k And table(i, j - 3) <> 3 - k And a(1) * a(2) = k * k * k * k) _
                     Or (table(i - 3, j - 3) <> 3 - k And table(i + 3, j - 3) <> 3 - k And a(1) * a(3) = k * k * k * k) _
                     Or (table(i - 3, j - 3) <> 3 - k And table(i + 3, j) <> 3 - k And a(1) * a(4) = k * k * k * k) _
                     Or (table(i - 3, j - 3) <> 3 - k And table(i, j + 3) <> 3 - k And a(1) * a(6) = k * k * k * k) _
                     Or (table(i - 3, j - 3) <> 3 - k And table(i - 3, j + 3) <> 3 - k And a(1) * a(7) = k * k * k * k) _
                     Or (table(i, j - 3) <> 3 - k And table(i + 3, j - 3) <> 3 - k And a(2) * a(3) = k * k * k * k) _
                     Or (table(i, j - 3) <> 3 - k And table(i + 3, j) <> 3 - k And a(2) * a(4) = k * k * k * k) _
                     Or (table(i, j - 3) <> 3 - k And table(i + 3, j + 3) <> 3 - k And a(2) * a(5) = k * k * k * k) _
                     Or (table(i, j - 3) <> 3 - k And table(i - 3, j + 3) <> 3 - k And a(2) * a(7) = k * k * k * k) _
                     Or (table(i + 3, j - 3) <> 3 - k And table(i + 3, j) <> 3 - k And a(3) * a(4) = k * k * k * k) _
                     Or (table(i + 3, j - 3) <> 3 - k And table(i + 3, j + 3) <> 3 - k And a(3) * a(5) = k * k * k * k) _
                     Or (table(i + 3, j - 3) <> 3 - k And table(i, j + 3) <> 3 - k And a(3) * a(6) = k * k * k * k) _
                     Or (table(i + 3, j) <> 3 - k And table(i + 3, j + 3) <> 3 - k And a(4) * a(5) = k * k * k * k) _
                     Or (table(i + 3, j) <> 3 - k And table(i, j + 3) <> 3 - k And a(4) * a(6) = k * k * k * k) _
                     Or (table(i + 3, j) <> 3 - k And table(i - 3, j + 3) <> 3 - k And a(4) * a(7) = k * k * k * k) _
                     Or (table(i + 3, j + 3) <> 3 - k And table(i, j + 3) <> 3 - k And a(5) * a(6) = k * k * k * k) _
                     Or (table(i + 3, j + 3) <> 3 - k And table(i - 3, j + 3) <> 3 - k And a(5) * a(7) = k * k * k * k) _
                     Or (table(i, j + 3) <> 3 - k And table(i - 3, j + 3) <> 3 - k And a(6) * a(7) = k * k * k * k) _
                     ) Then want231 = True
 End Function
 Private Function want232(i, j, k) As Boolean'ʽ5'
 Dim b(0 To 3) As Single
 b(0) = table(i - 1, j) * table(i + 1, j)
 b(1) = table(i - 1, j - 1) * table(i + 1, j + 1)
 b(2) = table(i, j - 1) * table(i, j + 1)
 b(3) = table(i + 1, j - 1) * table(i - 1, j + 1)
 
  If table(i, j) = 0 And ((table(i - 2, j) <> 3 - k And table(i + 2, j) <> 3 - k And table(i - 2, j - 2) <> 3 - k And table(i + 2, j + 2) <> 3 - k And b(0) * b(1) = k * k) _
                    Or (table(i - 2, j) <> 3 - k And table(i + 2, j) <> 3 - k And table(i, j - 2) <> 3 - k And table(i, j + 2) <> 3 - k And b(0) * b(2) = k * k) _
                    Or (table(i - 2, j) <> 3 - k And table(i + 2, j) <> 3 - k And table(i + 2, j - 2) <> 3 - k And table(i - 2, j + 2) <> 3 - k And b(0) * b(3) = k * k) _
                    Or (table(i - 2, j - 2) <> 3 - k And table(i + 2, j + 2) <> 3 - k And table(i, j - 2) <> 3 - k And table(i, j + 2) <> 3 - k And b(1) * b(2) = k * k) _
                    Or (table(i - 2, j - 2) <> 3 - k And table(i + 2, j + 2) <> 3 - k And table(i + 2, j - 2) <> 3 - k And table(i - 2, j + 2) <> 3 - k And b(1) * b(3) = k * k) _
                    Or (table(i, j - 2) <> 3 - k And table(i, j + 2) <> 3 - k And table(i + 2, j - 2) <> 3 - k And table(i - 2, j + 2) <> 3 - k And b(2) * b(3) = k * k) _
 ) Then want232 = True
 End Function
Function want233(i, j, k) As Boolean'ʽ6'
 Dim m As Single
 Dim n As Single
 Dim b(0 To 7) As Single
 Dim b1(0 To 7) As Single
 Dim a(0 To 7) As Single
 Dim a1(0 To 7) As Single
 b(0) = table(i - 1, j)
 b(1) = table(i - 1, j - 1)
 b(2) = table(i, j - 1)
 b(3) = table(i + 1, j - 1)
 b(4) = table(i + 1, j)
 b(5) = table(i + 1, j + 1)
 b(6) = table(i, j + 1)
 b(7) = table(i - 1, j + 1)
 b1(0) = table(i - 2, j)
 b1(1) = table(i - 2, j - 2)
 b1(2) = table(i, j - 2)
 b1(3) = table(i + 2, j - 2)
 b1(4) = table(i + 2, j)
 b1(5) = table(i + 2, j + 2)
 b1(6) = table(i, j + 2)
 b1(7) = table(i - 2, j + 2)
 a(0) = table(i - 2, j) * table(i - 1, j)
 a(1) = table(i - 2, j - 2) * table(i - 1, j - 1)
 a(2) = table(i, j - 2) * table(i, j - 1)
 a(3) = table(i + 1, j - 1) * table(i + 2, j - 2)
 a(4) = table(i + 1, j) * table(i + 2, j)
 a(5) = table(i + 1, j + 1) * table(i + 2, j + 2)
 a(6) = table(i, j + 1) * table(i, j + 2)
 a(7) = table(i - 1, j + 1) * table(i - 2, j + 2)
 a1(0) = table(i - 3, j)
 a1(1) = table(i - 3, j - 3)
 a1(2) = table(i, j - 3)
 a1(3) = table(i + 3, j - 3)
 a1(4) = table(i + 3, j)
 a1(5) = table(i + 3, j + 3)
 a1(6) = table(i, j + 3)
 a1(7) = table(i - 3, j + 3)
   For m = 0 To 3
   For n = 0 To 7
   If (b1(m) <> 3 - k And b1(m + 4) <> 3 - k And a1(n) <> 3 - k And b(m) * b(m + 4) = k * k) And n <> m And n <> m + 4 And a(n) = k * k Then
   want233 = True
   End If
   Next n
   Next m
 
End Function
Private Function wantthree(i As Single, j As Single, k As Single) As Boolean'ʽ7'
Dim a(0 To 7) As Single
Dim n As Single
a(0) = table(i - 2, j) * table(i - 1, j)
 a(1) = table(i - 2, j - 2) * table(i - 1, j - 1)
 a(2) = table(i, j - 2) * table(i, j - 1)
 a(3) = table(i + 1, j - 1) * table(i + 2, j - 2)
 a(4) = table(i + 1, j) * table(i + 2, j)
 a(5) = table(i + 1, j + 1) * table(i + 2, j + 2)
 a(6) = table(i, j + 1) * table(i, j + 2)
 a(7) = table(i - 1, j + 1) * table(i - 2, j + 2)
For n = 0 To 7
 If table(i, j) = 0 And a(n) = k * k Then
  wantthree = True
  End If
 Next n
End Function


Private Sub comdo()
Dim a As Single
Dim b As Single
For a = -5 To 20
For b = -5 To 20
If (a < 0) Or (b < 0) Or (a > 15) Or (b > 15) Then
table(a, b) = 10
End If
 Next b
 Next a
 
  For i = 0 To 15
  For j = 0 To 15
   If comturn = True And wantfive(i, j, 2) = True Then
     Call goes(i, j)
    End If
  Next j
  Next i '
  
  For i = 0 To 15
   For j = 0 To 15
    If comturn = True And wantfive(i, j, 1) = True Then
    Call goes(i, j)
    End If
   Next j
   Next i 'ֹԷ
   
 For i = 0 To 15
 For j = 0 To 15
  If comturn = True And table(i, j) * table(i, j + 1) * table(i, j + 2) = 8 And (table(i, j - 1) = 0 And table(i, j + 3) = 0) Then
     If table(i, j - 2) = 2 Or table(i - 1, j - 1) = 2 Or table(i - 1, j) = 2 Or table(i - 1, j + 1) = 2 Or table(i + 1, j - 1) = 2 Or table(i + 1, j) = 2 Or table(i + 1, j + 1) = 2 Then
    Call goes(i, j - 1)
    Else
    Call goes(i, j + 3)
    End If
 ElseIf comturn = True And table(i, j) * table(i + 1, j) * table(i + 2, j) = 8 And (table(i - 1, j) = 0 And table(i + 3, j)) = 0 Then
    If table(i - 2, j) = 2 Or table(i - 1, j - 1) = 2 Or table(i, j - 1) = 2 Or table(i + 1, j - 1) = 2 Or table(i - 1, j + 1) = 2 Or table(i, j + 1) = 2 Or table(i + 1, j + 1) = 2 Then
    Call goes(i - 1, j)
    Else
    Call goes(i + 3, j)
    End If
 ElseIf comturn = True And table(i, j) * table(i + 1, j + 1) * table(i + 2, j + 2) = 8 And (table(i - 1, j - 1) = 0 And table(i + 3, j + 3) = 0) Then
  If table(i - 2, j - 2) = 2 Or table(i - 1, j) = 2 Or table(i - 1, j + 1) = 2 Or table(i, j - 1) = 2 Or table(i, j + 1) = 2 Or table(i + 1, j - 1) = 2 Or table(i + 1, j) = 2 Then
  Call goes(i - 1, j - 1)
  Else
  Call goes(i + 3, j + 3)
  End If
 ElseIf comturn = True And table(i, j) * table(i - 1, j + 1) * table(i - 2, j + 2) = 8 And (table(i + 1, j - 1) = 0 And table(i - 3, j + 3) = 0) Then
  If table(i + 2, j - 2) = 2 Or table(i - 1, j - 1) = 2 Or table(i, j - 1) = 2 Or table(i - 1, j) = 2 Or table(i + 1, j) = 2 Or table(i + 1, j + 1) = 2 Or table(i, j + 1) = 2 Then
  Call goes(i + 1, j - 1)
  Else
  Call goes(i - 3, j + 3)
  End If
  End If
  Next j
  Next i 'Լĵһ
  
  For i = 0 To 15
  For j = 0 To 15
   If comturn = True And wantfour(i, j, 2) = True Then
   Call goes(i, j)
   End If
  Next j
  Next i 'Լĵһ
  
  For i = 0 To 15
    For j = 0 To 15
    If comturn = True And wantfour1(i, j, 2) = True Then
    Call goes(i, j)
    End If
    Next j
    Next i 'г
    
  For i = 0 To 15
  For j = 0 To 15
   If comturn = True And table(i, j) * table(i, j + 1) * table(i, j + 2) = 1 And (table(i, j - 1) = 0 And table(i, j + 3) = 0) Then
   If table(i, j - 2) = 1 Or table(i - 1, j - 1) = 1 Or table(i - 1, j) = 1 Or table(i - 1, j + 1) = 1 Or table(i + 1, j - 1) = 1 Or table(i + 1, j) = 1 Or table(i + 1, j + 1) = 1 Then
    Call goes(i, j - 1)
    Else
    Call goes(i, j + 3)
    End If
 ElseIf comturn = True And table(i, j) * table(i + 1, j) * table(i + 2, j) = 1 And (table(i - 1, j) = 0 And table(i + 3, j) = 0) Then
  If table(i - 2, j) = 1 Or table(i - 1, j - 1) = 1 Or table(i, j - 1) = 1 Or table(i + 1, j - 1) = 1 Or table(i - 1, j + 1) = 1 Or table(i, j + 1) = 1 Or table(i + 1, j + 1) = 1 Then
    Call goes(i - 1, j)
    Else
    Call goes(i + 3, j)
    End If
  ElseIf comturn = True And table(i, j) * table(i + 1, j + 1) * table(i + 2, j + 2) = 1 And (table(i - 1, j - 1) = 0 And table(i + 3, j + 3) = 0) Then
  If table(i - 2, j - 2) = 1 Or table(i - 1, j) = 1 Or table(i - 1, j + 1) = 1 Or table(i, j - 1) = 1 Or table(i, j + 1) = 1 Or table(i + 1, j - 1) = 1 Or table(i + 1, j) = 1 Then
  Call goes(i - 1, j - 1)
  Else
  Call goes(i + 3, j + 3)
  End If
  ElseIf comturn = True And table(i, j) * table(i - 1, j + 1) * table(i - 2, j + 2) = 1 And (table(i + 1, j - 1) = 0 And table(i - 3, j + 3) = 0) Then
  If table(i + 2, j - 2) = 1 Or table(i - 1, j - 1) = 1 Or table(i, j - 1) = 1 Or table(i - 1, j) = 1 Or table(i + 1, j) = 1 Or table(i + 1, j + 1) = 1 Or table(i, j + 1) = 1 Then
  Call goes(i + 1, j - 1)
  Else
  Call goes(i - 3, j + 3)
  End If
  End If
  Next j
  Next i 'ֹԷĵһ
     
  For i = 0 To 15
  For j = 0 To 15
  If comturn = True And wantfour(i, j, 1) = True Then
  Call goes(i, j)
  End If
  Next j
  Next i 'ֹԷĵһ
  
  For i = 0 To 15
  For j = 0 To 15
  If comturn = True And (want231(i, j, 1) = True _
                       Or want232(i, j, 1) = True _
                       Or want233(i, j, 1) = True) Then
  Call goes(i, j)
  End If
  Next j
  Next i 'ֹԷ˫
  
  For i = 0 To 15
  For j = 0 To 15
  If comturn = True And (want231(i, j, 2) = True _
                         Or want232(i, j, 2) = True _
                         Or want233(i, j, 2) = True) Then
  Call goes(i, j)
  End If
  Next j
  Next i '˫
  
    
    
    For i = 0 To 15
    For j = 0 To 15
    If comturn = True And wantfour1(i, j, 1) = True Then
    Call goes(i, j)
    End If
    Next j
    Next i 'ֹг
     
 For i = 0 To 15
 For j = 0 To 15
 If comturn = True And wantthree(i, j, 1) = True Then
 Call goes(i, j)
 End If
 Next j
 Next i 'Էһߵ
 
 For i = 0 To 15
 For j = 0 To 15
 If comturn = True And wantthree(i, j, 2) = True Then
 Call goes(i, j)
 End If
 Next j
 Next i 'Լһߵ
 
 For i = 0 To 15
 For j = 0 To 15
 If comturn = True And table(i, j) = 0 And (table(i - 1, j) * table(i + 1, j) = 1 _
                                       Or table(i - 1, j + 1) * table(i + 1, j + 1) = 1 _
                                       Or table(i, j - 1) * table(i, j + 1) = 1 _
                                       Or table(i + 1, j - 1) * table(i - 1, j + 1) = 1 _
                                       ) Then
                                       Call goes(i, j)
 End If
 Next j
 Next i '
 
 
 For i = 0 To 15
 For j = 0 To 15
 If comturn = True And table(i, j) = 0 And (table(i - 1, j) * table(i + 1, j) = 4 _
                                       Or table(i - 1, j + 1) * table(i + 1, j + 1) = 4 _
                                       Or table(i, j - 1) * table(i, j + 1) = 4 _
                                       Or table(i + 1, j - 1) * table(i - 1, j + 1) = 4 _
                                       ) Then
                                       Call goes(i, j)
 End If
 Next j
 Next i 'ճ
 
 For i = 0 To 15
 For j = 0 To 15
   If comturn = True And table(i, j) = 1 And (table(i - 1, j - 1) = 0 Or table(i, j - 1) = 0 Or table(i + 1, j - 1) = 0 Or table(i - 1, j) = 0 Or table(i + 1, j) = 0 Or table(i - 1, j + 1) = 0 Or table(i, j + 1) = 0 Or table(i + 1, j + 1) = 0) Then
   If table(i - 1, j - 1) = 0 Then
     Call goes(i - 1, j - 1)
     ElseIf table(i + 1, j + 1) = 0 Then
     Call goes(i + 1, j + 1)
     ElseIf table(i, j - 1) = 0 Then
     Call goes(i, j - 1)
     ElseIf table(i, j + 1) = 0 Then
     Call goes(i, j + 1)
     ElseIf table(i + 1, j - 1) = 0 Then
     Call goes(i + 1, j - 1)
     ElseIf table(i - 1, j + 1) = 0 Then
     Call goes(i - 1, j + 1)
     ElseIf table(i - 1, j) = 0 Then
     Call goes(i - 1, j)
     ElseIf table(i + 1, j) = 0 Then
     Call goes(i + 1, j)
     End If
 End If
 Next j
 Next i 'һ
End Sub

Private Sub Form_Paint()'(100,100)ΪϽ껭һ16*16,ÿ߳Ϊ300'
Cls
Dim x As Single
Dim y As Single
x = 100
y = 100
While x < 4300
 x = x + 300
 Line (x, 100)-(x, 4600)
Wend
While y < 4300
 y = y + 300
 Line (100, y)-(4600, y)
Wend
Line (50, 50)-(50, 4650)
Line (50, 50)-(4650, 50)
Line (50, 4650)-(4650, 4650)
Line (4650, 50)-(4650, 4650)
Line (100, 100)-(4600, 100)
Line (100, 100)-(100, 4600)
Line (4600, 100)-(4600, 4600)
Line (100, 4600)-(4600, 4600)
End Sub

Private Sub rule_Click()
MsgBox "˫ӣһʤ"
End Sub

Private Sub withblack_Click()
blackturn = True
whiteturn = False
comable = True
comturn = False
comcolor = RGB(255, 255, 255)
restart
End Sub

Private Sub withwhite_Click()
blackturn = False
whiteturn = True
comable = True
comturn = True
comcolor = RGB(0, 0, 0)
restart
End Sub
