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

📄 五子棋代码.txt

📁 一个五子棋游戏,如果你对vb有兴趣可以去看看了,
💻 TXT
字号:
///////////////////////////////////////////////////////////////////////
//五子棋代码
//
//使用的控件及名称:
//
//	窗体:Form			名称:Frm
//	棋盘控件:PictrueBox		名称:picQiPan	
//	位置标识控件:Shape		名称:Shp
//	按钮控件:CommandButton		名称:Cmd
//	提示信息控件:Label		名称:LblTip
//	提示坐标控件:Label		名称:LblPos
//
//判断胜负的函数名称:
//	WhoIsWin(x,y,who)
///////////////////////////////////////////////////////////////////////
'以下为代码部分,设置好控件的名称后,粘贴到代码编辑器中,即可。


Private mD As Integer '棋子网格宽度
Private mL As Integer '棋盘边长网格数
Private mBOrW As Boolean '当前棋子的颜色(真-黑,假-白)
Private mX As Integer '当前棋盘上的位置X
Private mY As Integer '当前棋盘上的位置Y

Private Sub Cmd_Click() '点击开始按钮
    Dim i As Integer
    Dim j As Integer
    DrawQiPan '画棋盘
    '初始化棋盘数组(清零)
    For i = 0 To 19
        For j = 0 To 19
            mArray(i, j) = 0
        Next j
    Next i
End Sub

Private Sub Form_Resize() '初始化窗体
    mD = 300 '每一个网格的宽度为300像素
    mL = 19 '每一边长有19网格
    '标识位置的图形框的尺寸
    Shp.Width = mD '宽度
    Shp.Height = mD '高度
    '棋盘控件的位置和大小
    With picQiPan
        '左上角的位置
        .Left = 0
        .Top = 0
        '内部的宽度和高度
        .ScaleWidth = mD * (mL + 1)
        .ScaleHeight = mD * (mL + 1)
    End With
    
    Cmd_Click
End Sub

Public Sub DrawQiPan() '绘制棋盘
    Dim i As Integer
    mBOrW = True '开始为黑方
    picQiPan.Cls '清空棋盘的内容
    '画水平线
    For i = 1 To 19
        picQiPan.Line (mD, i * mD)-(mD * mL, i * mD), vbBlack
    Next i
    '画垂直线
    For i = 1 To 19
        picQiPan.Line (i * mD, mD)-(i * mD, mD * mL), vbBlack
    Next i
    '将标识位置的图形框定位棋盘中心
    Shp.Left = mD * 10 - mD / 2
    Shp.Top = mD * 10 - mD / 2
    
    picQiPan.FillStyle = 0 '填充风格(实心)
    picQiPan.FillColor = vbBlack '填充颜色
    
    '画出9个星位
    picQiPan.Circle (4 * mD, 4 * mD), mD / 10, vbBlack '位置(4,4)
    picQiPan.Circle (10 * mD, 10 * mD), mD / 10, vbBlack '位置(10,10)
    picQiPan.Circle (10 * mD, 4 * mD), mD / 10, vbBlack '位置(10,4)
    picQiPan.Circle (4 * mD, 10 * mD), mD / 10, vbBlack '位置(4,10)
    picQiPan.Circle (4 * mD, 16 * mD), mD / 10, vbBlack '位置(4,16)
    picQiPan.Circle (16 * mD, 4 * mD), mD / 10, vbBlack '位置(16,4)
    picQiPan.Circle (16 * mD, 10 * mD), mD / 10, vbBlack '位置(16,10)
    picQiPan.Circle (10 * mD, 16 * mD), mD / 10, vbBlack '位置(10,16)
    picQiPan.Circle (16 * mD, 16 * mD), mD / 10, vbBlack '位置(16,16)
    
End Sub

Private Sub picQiPan_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim mColor As Long '当前的颜色
    '鼠标左键按下,限制标识位置的图形框在棋盘中
    If Button = 1 And mX > 0 And mY < 20 And mY > 0 And mY < 20 Then
        If mArray(mX, mY) <> 0 Then
            MsgBox "此处已经落子,请在别处下子!", vbInformation, "提示"
        Else
            mColor = IIf(mBOrW, vbBlack, vbWhite) '得到当前的颜色
            picQiPan.FillStyle = 0 '填充的风格(实心)
            picQiPan.FillColor = mColor '填充的颜色
            '在当前的位置上画园,代表棋子,棋子半径为0.4网格宽度
            picQiPan.Circle (mX * mD, mY * mD), mD * 2 / 5, mColor
            mArray(mX, mY) = IIf(mBOrW, 1, -1) '保存到数组中
            
            '判断是否胜利,WhoIsWin=0,代表继续下棋
            If WhoIsWin(mX, mY, IIf(mBOrW, 1, -1)) <> 0 Then
                MsgBox "恭喜你。你赢了!", vbInformation, "胜利" '提示胜利方
                LblTip.Caption = IIf(mBOrW, "黑", "白") & "方胜利!" '显示胜利方
            Else
                mBOrW = Not mBOrW '交换下子
                LblTip.Caption = IIf(mBOrW, "黑", "白") & "方思考中......" '显示正在思考方
            End If
    
        End If
    End If
End Sub

Private Sub picQiPan_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    '计算当前棋盘上的位置
    mX = (x - x Mod mD) / mD
    mY = (y - y Mod mD) / mD
    '显示当前棋盘上的位置
    LblPos.Caption = "当前位置:(" & mX & "," & mY & ")"
    '显示当前棋盘上的位置
    If mX > 0 And mX < 20 And mY > 0 And mY < 20 Then '限制标识位置的图形框在棋盘中
        Shp.Left = mX * mD - mD / 2
        Shp.Top = mY * mD - mD / 2
    End If
End Sub

⌨️ 快捷键说明

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