跪求五子棋vb代码
选项显式
Const SubWidth = 400 '定义了五子棋表格中每个单元格的长度和宽度。
‘private p 2 play color As Integer’实现黑白棋子交替。
‘private my color As Integer’标记黑白棋子的颜色。
Private IfSucceed为Boolean '表示胜利与否。
Const pi = 3.14159 '定义字符常量pi = 3.14159。
私有centerx作为单个
作为单身的私人中心
私有radius为单个
私有数据数组(14,14)作为整数'保存棋盘的位置信息(空格=3黑棋=1白棋=0)。
“Private sumtime As Integer”记录总时间以确定谁超时了。
Private ifStarteasy As Boolean '标记计时功能是否可以在简单难度下开启(如果ifStarteasy=true,则每次下降都会开启一次计时)。
Private ifStartnormal As Boolean '标记在中等难度下是否可以开启计时功能(如果ifStartnormal=true,则每次下降都会开启一次计时)。
Private ifStarthard As Boolean '标记计时功能在困难条件下是否可以开启(如果ifStarthard=true,则每次下降时计时开启一次)。
单击命令按钮“退出”退出。
Private Sub CmdExit_Click()
结束
末端接头
Private Sub CmdStart_Click()
将I标注为整数
将m标注为整数
将n表示为整数
画一个棋盘
PicQiPan。Cls
PicQiPan。ForeColor = vbBlack
对于i = 1到14
PicQiPan。Line (SubWidth,SubWidth * i)-(SubWidth * 14,_
子宽度* i)
PicQiPan。行(子宽度* i,子宽度)-(子宽度* i,_
子宽度* 14)
接下来我
棋盘放置信息的初始化
对于m = 0到14
对于n = 0到14
DataArray(m,n) = 3
下一个n
下一个m
主标签信息的初始化
P2PlayColor = 0
MyColor = 0
IfSucceed = False
ifStarteasy = False
ifStartnormal = False
ifStarthard = False
定时器2。启用=假
定时器3。启用=假
定时器4。启用=假
弗曼。Cls
sumtime = -1
末端接头
简单的困难
私有子文件easy_Click()
ifStarteasy = True
sumtime = -1
MsgBox:“双方每一步棋的思考时间最多20秒,否则加时赛清算。”
末端接头
通过文件“退出”退出
私有子文件exit_Click()
结束
末端接头
难度难度
私有子文件hard_Click()
ifStarthard = True
sumtime = -1
MsgBox:“双方每一步棋的思考时间最多5秒,否则加时赛清算。”
末端接头
中等难度
私有子文件normal_Click()
ifStartnormal = True
sumtime = -1
弗曼。Cls
MsgBox:“双方思考每一步棋的最大时间是10秒,否则加时清算。”
末端接头
通过文件“重启”来实现棋盘初始化。
私有子文件restart_Click()
调用CmdStart_Click
末端接头
私有子窗体_Load()
将I标注为整数
将m标注为整数
将n表示为整数
画一个棋盘
PicQiPan。Cls
PicQiPan。ForeColor = vbBlack
对于i = 1到14
PicQiPan。Line (SubWidth,SubWidth * i)-(SubWidth * 14,_
子宽度* i)
PicQiPan。行(子宽度* i,子宽度)-(子宽度* i,_
子宽度* 14)
接下来我
棋盘放置信息的初始化
对于m = 0到14
对于n = 0到14
DataArray(m,n) = 3
下一个n
下一个m
打印
确定表针位置的基本参数
centerx = Pictime。宽度/ 2
centery = Pictime。高度/ 2
radius = Pictime。高度/ 2 * 0.9
Pictime。PSet(centex,centery)
Pictime。圆(圆心,中心),半径
末端接头
判断棋子的位置(出界和重子)
private Sub PicQipan _ MouseDown(Button为整数,Shift为整数,X为Single,y为Single)
将x0显示为整数
将y0标注为整数
将I标注为整数
Dim j为整数
如果X & lt子宽度或X & gt14.5 *子宽度或y & lt子宽度或y & gt14.5 *子宽度
MsgBox“超过登车限制,请再次下车!”
出口接头
如果…就会结束
if Abs(Int(X/SubWidth)-X/SubWidth)& lt;那就0.5
x0 = Int(X /子宽度)
其他
x0 = Int(X /子宽度)+ 1
如果…就会结束
if Abs(Int(y/SubWidth)-y/SubWidth)& lt;那就0.5
y0 = Int(y /子宽度)
其他
y0 = Int(y /子宽度)+ 1
如果…就会结束
If DataArray(x0,y0)& lt;& gt3然后
当前位置已经有块。
MsgBox“当前位置有棋子,请再来一次!”,vbCritical,“注意!”
出口接头
如果…就会结束
sumtime = -1
调用DrawPill(x0,y0)'绘制棋子。
调用RemenberCrossData(x0,y0)'记录棋子的信息。
叫谁赢来判断谁赢。
判断是否开启相应难度计时功能。
如果ifStarteasy = True,则
定时器2。启用=真
如果…就会结束
如果ifStartnormal = True,则
定时器3。启用=真
如果…就会结束
如果ifStarthard = True,则
定时器4。启用=真
如果…就会结束
末端接头
画棋子
私有子DrawPill(xx0为整数,yy0为整数)
如果P2PlayColor那么
PicQiPan。ForeColor = vbWhite
多项活动
PicQiPan。FillColor = vbWhite
PicQiPan。FillStyle = 0
MyColor = 0
其他
PicQiPan。ForeColor = vbBlack
多项活动
PicQiPan。FillColor = vbBlack
PicQiPan。FillStyle = 0
MyColor = 1
如果…就会结束
P2PlayColor =不是P2PlayColor
PicQiPan。圆(xx0 *子宽度,yy0 *子宽度),子宽度* 0.5
末端接头
以下A B C事件* * *和同时下棋听音乐一样。
A
私有子目录1_Change()
文件1。Path = Dir1。小路
末端接头
B
私有子Drv_Change()
Dir1。Path = Drv。驾驶
末端接头
C
私有子文件1_Click()
mp3。URL = File1。路径与路径。" \ " & amp文件1。文件名
末端接头
棋盘皮
私有Sub qipanstylefurA_Click()
PicQiPan。背景色= & ampHC0FFFF
调用CmdStart_Click
末端接头
私有Sub qipanstylefurB_Click()
PicQiPan。背景色= & ampHC0C000
调用CmdStart_Click
末端接头
私有Sub qipanstylefurC_Click()
PicQiPan。背景色= & ampHE0E0E0
调用CmdStart_Click
末端接头
私有Sub qipanstylefurD_Click()
PicQiPan。背景色= & ampH8080FF
调用CmdStart_Click
末端接头
添加四种背景音乐
Private Sub stylemusicA_Click()
mp3。URL = App。路径与路径。" \ " & amp" music01.mp3 "
末端接头
Private Sub stylemusicB_Click()
mp3。URL = App。路径与路径。" \ " & amp" music02.mp3 "
末端接头
Private Sub stylemusicC_Click()
mp3。URL = App。路径与路径。" \ " & amp" music03.mp3 "
末端接头
Private Sub stylemusicD _ Click()
mp3。URL = App。路径与路径。" \ " & amp" music04.mp3 "
末端接头
定时器1。在属性框中设置Enabled=true。
私有子定时器1_Timer()
将s标注为整数
将m标注为整数
将h标注为整数
Dim sngLenS为Single
Dim sngLenM作为单个
Dim sngLenH为单身
将I标注为整数
调试了几次查询VB常用函数,最后决定用Now代替time(虽然之前真的可以用Time)
s =秒(现在)
m =分钟(现在)
h =小时(现在)+ m / 60
sngLenS =半径* 0.8
sngLenM =半径* 0.6
sngLenH =半径* 0.4
Pictime。Cls
Pictime。缩放(-中心x,中心y)-(中心x,-中心y)
Pictime。Line (0,0)-(sngLenS * Sin(2 * pi * s / 60),sngLenS * Cos(2 * pi * s / 60)),vbGreen
Pictime。Line (0,0)-(sngLenM * Sin(2 * pi * m / 60),sngLenM * Cos(2 * pi * m / 60)),vbGreen
如果h & gt那么12
h = h - 12
如果…就会结束
Pictime。Line (0,0)-(sngLenH * Sin(2 * pi * h/12),sngLenH * Cos(2 * pi * h / 12)),vbGreen
Pictime。圆(0,0),半径* 0.9
对于i = 1到12
Pictime。圆(半径* 0.9 * 0.85 * Sin(2 * pi * i / 12),半径* 0.9 * 0.85 * Cos(2 * pi * i / 12)),半径* 0.01,vbGreen
接下来我
末端接头
判断谁赢了。
私有Sub WhoWin()
将I标注为整数
Dim j为整数
对于j = 1到14
对于i = 1到14
如果DataArray(i,j) = MyColor且Not if successful,则
If (14 - i)>= 4且(14 - j)>那么= 4
如果DataArray(i + 1,j + 1) = MyColor,则
如果DataArray(i + 2,j + 2) = MyColor,则
如果DataArray(i + 3,j + 3) = MyColor,则
如果DataArray(i + 4,j + 4) = MyColor,则
IfSucceed = True
为...退出
为...退出
如果…就会结束
如果…就会结束
如果…就会结束
如果…就会结束
如果…就会结束
如果我& gt4和(14 - j)>那么= 4
如果DataArray(i - 1,j + 1) = MyColor,则
如果DataArray(i - 2,j + 2) = MyColor,则
如果DataArray(i - 3,j + 3) = MyColor,则
如果DataArray(i - 4,j + 4) = MyColor,则
IfSucceed = True
为...退出
为...退出
如果…就会结束
如果…就会结束
如果…就会结束
如果…就会结束
如果…就会结束
If (14 - i)>那么= 4
如果DataArray(i + 1,j) = MyColor,则
如果DataArray(i + 2,j) = MyColor,则
如果DataArray(i + 3,j) = MyColor,则
如果DataArray(i + 4,j) = MyColor,则
IfSucceed = True
为...退出
为...退出
如果…就会结束
如果…就会结束
如果…就会结束
如果…就会结束
如果…就会结束
If (14 - j)>那么= 4
如果DataArray(i,j + 1) = MyColor,则
如果DataArray(i,j + 2) = MyColor,则
如果DataArray(i,j + 3) = MyColor,则
如果DataArray(i,j + 4) = MyColor,则
IfSucceed = True
为...退出
为...退出
如果…就会结束
如果…就会结束
如果…就会结束
如果…就会结束
如果…就会结束
如果…就会结束
接下来我
下一个j
如果我成功了
如果不是P2PlayColor,则
定时器2。Enabled = False“白色获胜时间停止”。
定时器3。启用=假
定时器4。启用=假
MsgBox“白棋赢了!”,vbOKOnly
CmdStart_Click
其他
定时器2。Enabled = False“黑方获胜,计时停止。
定时器3。启用=假
定时器4。启用=假
MsgBox“黑的赢!”,vbOKOnly
CmdStart_Click
如果…就会结束
如果…就会结束
末端接头
分别记录黑白片的分布情况。
私有Sub RemenberCrossData(x0 _ As Integer,y0_ As Integer)
如果我的颜色
DataArray(x0_,y0_) = 1
其他
DataArray(x0_,y0_) = 0
如果…就会结束
末端接头
简单困难思考时间20秒
私有子定时器2_Timer()
将I标注为整数
i = 1
Sumtime = sumtime+i '计时
弗曼。Cls
打印20分钟剩余时间提示
如果sumtime = 20,则
如果MyColor = 1,则
定时器2。Enabled = False '白色超时计时器停止。
MsgBox“白棋超时”
调用CmdStart_Click
其他
定时器2。“Enabled = False”黑色超时停止。
MsgBox“黑棋超时”
调用CmdStart_Click
如果…就会结束
如果…就会结束
末端接头
中等难度思考时间10秒
私有子定时器3_Timer()
将I标注为整数
i = 1
Sumtime = sumtime+i '计时
弗曼。Cls
打印10-sumtime '剩余时间提示
如果sumtime = 10,则
如果MyColor = 1,则
定时器3。Enabled = False '白色超时计时器停止。
MsgBox“白棋超时”
调用CmdStart_Click
其他
定时器3。“Enabled = False”黑色超时停止。
MsgBox“黑棋超时”
调用CmdStart_Click
如果…就会结束
如果…就会结束
末端接头
难度难度思考时间5秒
私有子定时器4_Timer()
将I标注为整数
i = 1
Sumtime = sumtime+i '计时
弗曼。Cls
打印“5-sumtime”剩余时间提示
如果sumtime = 5,则
如果MyColor = 1,则
定时器4。Enabled = False '白色超时计时器停止。
MsgBox“白棋超时”
调用CmdStart_Click
其他
定时器4。“Enabled = False”黑色超时停止。
MsgBox“黑棋超时”
调用CmdStart_Click
如果…就会结束
如果…就会结束
末端接头