跪求五子棋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

如果…就会结束

如果…就会结束

末端接头