⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mod五子棋.bas

📁 一个五子棋游戏,如果你对vb有兴趣可以去看看了,
💻 BAS
字号:
Attribute VB_Name = "Mod五子棋"
Option Explicit

Public mArray(19, 19) As Integer '记录棋盘上下子位置颜色的数组
'判断是否有人胜利
'X,Y 刚下的棋子的数组位子
'Who 是谁下的
'WhoIsWin =0 继续
'               =1 黑棋赢
'               =-1 白棋赢
Public Function WhoIsWin(x As Integer, y As Integer, Who As Integer) As Integer
    If H(x, y, Who) >= 4 Or V(x, y, Who) >= 4 Or HV_01(x, y, Who) >= 4 Or HV_02(x, y, Who) >= 4 Then
        WhoIsWin = Who
    Else
        WhoIsWin = 0
    End If
End Function

'水平方向上的判断
Private Function H(x As Integer, y As Integer, c As Integer) As Integer
    Dim i As Integer
    Dim Count As Integer
    Count = 0
    '从落子点的左边方面统计Count
    If x > 0 Then
        i = 1
        Do While x - i > 0 '保证数组下标不溢出
            If mArray(x - i, y) = c Then '判断颜色
                Count = Count + 1
                i = i + 1 '继续向左移动
            Else
                Exit Do '立刻退出
            End If
        Loop
    End If
    '从落子点的右边方面统计Count
    If x < 20 Then
        i = 1
        Do While x + i < 20 '保证数组下标不溢出
            If mArray(x + i, y) = c Then '判断颜色
                Count = Count + 1
                i = i + 1 '继续向右移动
            Else
                Exit Do '立刻退出
            End If
        Loop
    End If
    H = Count
End Function

'垂直方向上的判断
Private Function V(x As Integer, y As Integer, c As Integer) As Integer
    Dim i As Integer
    Dim Count As Integer
    Count = 0
    '从落子点的上边方面统计Count
    If y > 0 Then
        i = 1
        Do While y - i > 0 '保证数组下标不溢出
            If mArray(x, y - i) = c Then '判断颜色
                Count = Count + 1
                i = i + 1 '继续向上移动
            Else
                Exit Do '立刻退出
            End If
        Loop
    End If
    '从落子点的下边方面统计Count
    If y < 20 Then
        i = 1
        Do While y + i < 20 '保证数组下标不溢出
            If mArray(x, y + i) = c Then '判断颜色
                Count = Count + 1
                i = i + 1 '继续向下移动
            Else
                Exit Do '立刻退出
            End If
        Loop
    End If
    V = Count
End Function

'主对角线方向上的判断
Private Function HV_01(x As Integer, y As Integer, c As Integer) As Integer
    Dim i As Integer
    Dim Count As Integer
    Count = 0
    '从落子点的左下方面统计Count
    If x > 0 And y > 0 Then
        i = 1
        Do While x - i > 0 And y + i < 20 '保证数组下标不溢出
            If mArray(x - i, y + i) = c Then '判断颜色
                Count = Count + 1
                i = i + 1 '继续向左下方面移动
            Else
                Exit Do '立刻退出
            End If
        Loop
    End If
    '从落子点的右上方面统计Count
    If x < 20 And y > 0 Then
        i = 1
        Do While x + i < 20 And y - i > 0 '保证数组下标不溢出
            If mArray(x + i, y - i) = c Then '判断颜色
                Count = Count + 1
                i = i + 1 '继续向右上方面移动
            Else
                Exit Do '立刻退出
            End If
        Loop
    End If
    HV_01 = Count
End Function

'次对角线方向上的判断
Private Function HV_02(x As Integer, y As Integer, c As Integer) As Integer
    Dim i As Integer
    Dim Count As Integer
    Count = 0
    '从落子点的左上方面统计Count
    If x > 0 And y < 20 Then
        i = 1
        Do While x - i > 0 And y - i > 0 '保证数组下标不溢出
            If mArray(x - i, y - i) = c Then '判断颜色
                Count = Count + 1
                i = i + 1 '继续向左上方面移动
            Else
                Exit Do '立刻退出
            End If
        Loop
    End If
    '从落子点的右下方面统计Count
    If x < 20 And y < 20 Then
        i = 1
        Do While x + i < 20 And y + i < 20 '保证数组下标不溢出
            If mArray(x + i, y + i) = c Then '判断颜色
                Count = Count + 1
                i = i + 1 '继续向右下方面移动
            Else
                Exit Do '立刻退出
            End If
        Loop
    End If
    HV_02 = Count
End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -