热门文章 | 热门软件| 热门源码 | 热门电影 | 知识库 | 联系我们
软件 源码 教程 影视 健康 招聘
  HTML | JavaScript | ASP | PHP | JSP | NET | VB | VC | VF | Windows | Linux | Mysql | Mssql | Oracle | Struts 
当前位置: 创世纪计算机资源网 -> 文章频道 ->vb 
站内搜索:
一个五子棋源码(1)
作者:佚名 来源:不详 整理日期:2007-4-13

这个是原代码,虽然写得很差,但是这算是的处女作了。以后会写好一点的,给大家玩。
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

[1]  [2]  [3]  
相关文章
暂无