失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 五子棋双人对战的实现

五子棋双人对战的实现

时间:2020-06-14 16:41:52

相关推荐

五子棋双人对战的实现

完成了界面,实现双人对战就很简单了。

1、定义公共变量和结构变量

Public Structure FivePos

Dim x As Integer

Dim y As Integer

Dim color As Integer

End Structure

Public fpGoPos(225) As FivePos '记录下子顺序和位置

Public intGoType(224) As Integer '记录下子分布

Public intFirstGo As Integer '谁先手

Public bLimit As Boolean '是否禁手

Public intStep As Integer '已走步数

Dim intPlayer1, intPlayer2 As Integer '双人对战

Const conBlack = 1‘黑子

Const conWhite = 0’白子

Const conNull = 2‘空位

2、Form1_Load事件中设置

intPlayer1 = conBlack

intPlayer2 = conWhite

intFirstGo = conBlack

intStep = 0

bLimit = True

3、panFive_Paint添加检测是否胜利、禁手的代码,注意几点

a、intStep > 7时开始检测‘>8会漏掉连五可能

b、禁手时是对方胜利

c、双三禁手中必须都是活三,双四禁手中可以是冲四、活四

4、panFive_MouseDown

a、要检测落子范围是否在棋盘内

b、检查是否该位置已下子

c、落子颜色的变化,参考以下代码

intStep = intStep + 1

fpGoPos(intStep).x = intTempX

fpGoPos(intStep).y = intTempY

If intStep Mod 2 = 1 Then

fpGoPos(intStep).color = intFirstGo

Else

fpGoPos(intStep).color = (intFirstGo + 1) Mod 2 '转换成另一颜色,免于判断

End If

intGoType(intTempX * 15 + intTempY) = fpGoPos(intStep).color

'绘制此步棋子

Dim sdr = CType(sender, Panel)

panFive_Paint(sdr, New PaintEventArgs(sdr.CreateGraphics, sdr.DisplayRectangle))

'panFive.Refresh()’将清除所有棋子

5、完善一下提示功能、新游戏开始初始化功能等

这样就完成了双人对战的功能

如果觉得《五子棋双人对战的实现》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。