这个是原代码,虽然写得很差,但是这算是我的处女作了。以后会写好一点的,给大家玩。
Option Explicit
Dim NowCompe As Integer 1 represents Human,2 represents Computer...
Dim State(0 To 14, 0 To 14) As Integer state 0,1,2
Dim Exp(1 To 13, 1 To 13, 1 To 8, 1 To 2) As Single ExpValue 8 dimension and Compe...
Dim nowX As Integer, nowY As Integer
Dim maxX As Integer, maxY As Integer
Dim XwinX(1 To 6) As Integer, XwinY(1 To 6) As Integer, X1(1 To 6) As Integer
Dim CWIN As Boolean
Dim PrePCX As Integer, PrePCY As Integer
Dim llWinX As Integer, llWinY As Integer, llW As Integer
Dim HuX As Integer, HuY As Integer, HW As Integer
Dim preHX As Integer, preHY As Integer
Private Function lineCount(ByVal Fx As Integer, ByVal Fy As Integer, _
ByRef Sx As Integer, Sy As Integer, _
ByRef Tx As Integer, ByRef Ty As Integer, _
ByVal adx As Integer, ByVal ady As Integer) As Boolean
Dim n As Integer
Dim Compe As Integer
Dim Ox As Integer, Oy As Integer
Ox = Fx
Oy = Fy
Compe = State(Fx, Fy)
Do While State(Fx + adx, Fy + ady) = Compe
n = n + 1
If n = 4 Then
Tx = Fx + adx
Ty = Fy + ady
Sx = Tx - 4 * adx
Sy = Ty - 4 * ady
lineCount = True
Exit Function
End If
Fx = Fx + adx
Fy = Fy + ady
Loop
Tx = Fx
Ty = Fy
Fx = Ox
Fy = Oy
Do While State(Fx - adx, Fy - ady) = Compe
n = n + 1
If n = 4 Then
Sx = Fx - adx
Sy = Fy - ady
lineCount = True
Exit Function
End If
Fx = Fx - adx
Fy = Fy - ady
Loop
Fx = Ox
Fy = Oy
lineCount = False
End Function
Sub ReClear()
Dim m As Integer, n As Integer, i As Integer, j As Integer
picMain.Cls
For m = 1 To 13
For n = 1 To 13
State(m, n) = 0
For i = 1 To 8
For j = 1 To 2
Exp(m, n, i, j) = 0
Next
Next
Next
Next
CWIN = False
nowX = 0
nowY = 0
maxX = 0
maxY = 0
For n = 1 To 6
X1(n) = 0
Next
If optComputer.Value = True Then
NowCompe = 2
Else
NowCompe = 1
End If
PrePCX = -1
PrePCY = -1
llW = 0
llWinX = 0
llWinY = 0
HW = 0
HuX = 0
HuY = 0
End Sub
Sub Spaint()
Dim n As Integer
Dim m As Integer
For n = 1 To 13
For m = 1 To 13
If State(n, m) = 0 Then GoTo Line1
If State(n, m) = 1 Then
picMain.PaintPicture picHuman.Picture, (n - 1) * 360 + 140, (m - 1) * 360 + 140, 222, 222
Else
picMain.PaintPicture picComputer.Picture, (n - 1) * 360 + 140, (m - 1) * 360 + 140, 222, 222
End If
Line1:
Next
Next
End Sub
Private Sub PreCheck(ByVal Fx As Integer, ByVal Fy As Integer, ByVal adx As Integer, _
ByVal ady As Integer)
Dim Compe As Integer
Dim n As Integer
Dim xX1 As Integer, yY1 As Integer
Dim sum As Integer
Compe = State(Fx, Fy)
sum = 0
Do While Not (State(Fx - adx, Fy - ady) <> 0 And _
State(Fx - adx, Fy - ady) <> Compe)
If State(Fx - adx, Fy - ady) = 0 Then
xX1 = Fx - adx
yY1 = Fy - ady
sum = PreCount(xX1, yY1, adx, ady, Compe)
If sum = 3 Then
If Compe = 2 Then
llW = 1
llWinX = xX1
llWinY = yY1
Else
HW = 1
HuX = xX1
HuY = yY1
End If
End If
Exit Sub
End If
Fx = Fx - adx
Fy = Fy - ady
Loop
End Sub
Private Sub LeftCheck(ByVal Fx As Integer, ByVal Fy As Integer, ByVal adx As Integer, _
ByVal ady As Integer)
Dim Compe As Integer
Dim n As Integer
Dim xX1 As Integer, yY1 As Integer
Dim sum As Integer
Compe = State(Fx, Fy)
sum = 0
Do While Not (State(Fx - adx, Fy - ady) <> 0 And _
State(Fx - adx, Fy - ady) <> Compe)
If State(Fx - adx, Fy - ady) = 0 Then
xX1 = Fx - adx
yY1 = Fy - ady
sum = sCount(xX1, yY1, adx, ady, Compe) + _
sCount(xX1, yY1, -adx, -ady, Compe)
If sum = 4 Then
Dim nn As Integer
nn = 1
Do While X1(nn) <> 0
If nn = 6 Then Exit Do
nn = nn + 1
Loop
X1(nn) = Compe
XwinX(nn) = xX1
XwinY(nn) = yY1
ElseIf sum > 4 Then
Exp(xX1, yY1, CheDimens(adx, ady), 1) = 0
Exp(xX1, yY1, CheDimens(-adx, -ady), 1) = 0
End If
Exit Sub
End If
Fx = Fx - adx
Fy = Fy - ady
Loop