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

📄 frm.frm

📁 一个五子棋游戏,如果你对vb有兴趣可以去看看了,
💻 FRM
字号:
VERSION 5.00
Begin VB.Form Frm 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "五子棋游戏"
   ClientHeight    =   6000
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   7860
   Icon            =   "Frm.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   6000
   ScaleWidth      =   7860
   StartUpPosition =   2  '屏幕中心
   Begin VB.CommandButton Cmd 
      Caption         =   "开始(&B)"
      Height          =   375
      Left            =   6390
      TabIndex        =   1
      Top             =   420
      Width           =   1185
   End
   Begin VB.PictureBox picQiPan 
      AutoRedraw      =   -1  'True
      BackColor       =   &H0080C0FF&
      Height          =   6000
      Left            =   0
      ScaleHeight     =   5940
      ScaleWidth      =   6060
      TabIndex        =   0
      Top             =   0
      Width           =   6120
      Begin VB.Shape Shp 
         BorderColor     =   &H000000FF&
         Height          =   255
         Left            =   0
         Top             =   0
         Width           =   255
      End
   End
   Begin VB.Image Image1 
      Height          =   480
      Left            =   6780
      Picture         =   "Frm.frx":08CA
      Top             =   4950
      Width           =   480
   End
   Begin VB.Label LblPos 
      AutoSize        =   -1  'True
      BackColor       =   &H80000000&
      Caption         =   "当前位置"
      Height          =   180
      Left            =   6390
      TabIndex        =   3
      Top             =   1740
      Width           =   720
   End
   Begin VB.Label LblTip 
      AutoSize        =   -1  'True
      BackColor       =   &H80000000&
      Caption         =   "黑方先手"
      ForeColor       =   &H00FF0000&
      Height          =   180
      Left            =   6390
      TabIndex        =   2
      Top             =   1440
      Width           =   720
   End
End
Attribute VB_Name = "Frm"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'***********************************************************
'五子棋程序:
'***********************************************************
'使用的控件及名称:
'窗体:Form                                 名称:Frm
'棋盘控件: PictrueBox                   名称: picQiPan
'位置标识控件: Shape                    名称: Shp
'按钮控件: CommandButton           名称: Cmd
'提示信息控件: Label                      名称: LblTip
'提示坐标控件: Label                      名称: LblPos
'***********************************************************
Option Explicit
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() '初始化窗体
    picQiPan.AutoRedraw = True
    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 mX < 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 + -