大家好,每一天,我们都要有新的目标,这样才能激励自己不断进步与提高!

1

今天,我们共同来学习VB编程开发的围棋游戏实现过程,以帮助大家更好的运用VB去编写程序。

围棋的实现,主要是综合应用了VB编程的核心知识,比如图形、算法、控制结构、数组、过程、高级控件等的应用。

程序运行图

围棋实现代码

Option Explicit

Dim Board(0 To 18, 0 To 18) As Byte    '此数组标识棋盘上每个点是否有子:0 无子,1 黑,2 白子

Dim lastnum As Integer                 '最新放置棋子的位置号

Const HDist As Integer = 250

Const VDist As Integer = 800

Const Grid As Integer = 250

Private Sub cmdRemoveBlack_Click()     '移除黑子

Dim i As Integer

For i = 0 To 360

If Board(i Mod 19, i \ 19) = 1 Then Board(i Mod 19, i \ 19) = 0: shpChess(i).Visible = False

Next

Call CountChess

End Sub

Private Sub cmdRemoveWhite_Click()    '移除白子

Dim i As Integer

For i = 0 To 360

If Board(i Mod 19, i \ 19) = 2 Then Board(i Mod 19, i \ 19) = 0: shpChess(i).Visible = False

Next

Call CountChess

End Sub

Private Sub cmdUndo_Click()            '撤消最后一步

shpChess(lastnum).Visible = False

Board(lastnum Mod 19, lastnum \ 19) = 0

Call CountChess

End Sub

Private Sub Command1_Click()

Unload Me

End Sub

Private Sub Form_Load()

'窗体加载时,使用直线控件数组生成19*19的围棋盘

Dim i As Integer

Randomize

'生成横线

For i = 1 To 18

Load LinH(i)

Next

For i = 0 To 18

LinH(i).Visible = True

LinH(i).X1 = HDist

LinH(i).Y1 = VDist + Grid * i

LinH(i).Y2 = VDist + Grid * i

LinH(i).X2 = HDist + Grid * 18

Next

'生成竖线

For i = 1 To 18

Load LinV(i)

Next

For i = 0 To 18

LinV(i).Visible = True

LinV(i).Y1 = VDist

LinV(i).X1 = HDist + Grid * i

LinV(i).Y2 = VDist + Grid * 18

LinV(i).X2 = HDist + Grid * i

Next

'生成棋子

For i = 1 To 360

Load shpChess(i)

shpChess(i).FillStyle = 0

shpChess(i).FillColor = vbWhite

Next

For i = 0 To 360

shpChess(i).Top = (i \ 19) * Grid + VDist - 100

shpChess(i).Left = (i Mod 19) * Grid + HDist - 100

shpChess(i).Visible = True

Next

'读取已存的棋局

If Dir("save.txt") <> "" Then

Open "save.txt" For Input As #1

For i = 0 To 360

Input #1, Board(i Mod 19, i \ 19)

Next

Close

End If

Call CountChess

End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim i As Integer

Dim j As Integer

'计算行列

i = (X - HDist) / Grid

j = (Y - VDist) / Grid

'防止下标越界

If i > 18 Then i = 18

If i < 0 Then i = 0

If j > 18 Then j = 18

If j < 0 Then j = 0

If Shift = 0 Then           '加子

lastnum = j * 19 + i

If Board(i, j) = 0 Then

Select Case Button

Case 1

shpChess(lastnum).FillColor = vbBlack

Board(i, j) = 1

Case 2

shpChess(lastnum).FillColor = vbWhite

Board(i, j) = 2

End Select

shpChess(lastnum).Visible = True

Else

MsgBox "此处有子,不能落子。"

End If

ElseIf Shift = 2 Then     '按住Ctrl键去子

If Board(i, j) <> 0 Then

Select Case Button

Case 1

If Board(i, j) = 1 Then

shpChess(i + 19 * j).Visible = False

Board(i, j) = 0

End If

Case 2

If Board(i, j) = 2 Then

shpChess(i + 19 * j).Visible = False

Board(i, j) = 0

End If

End Select

Else

MsgBox "此处无子,不能提子。"

End If

End If

Call CountChess

End Sub

'退出时,保存当前棋局

Private Sub Form_Unload(Cancel As Integer)

Open "save.txt" For Output As #1

Dim i As Integer

For i = 0 To 360

Write #1, Board(i Mod 19, i \ 19),

Next

Close #1

End Sub

Private Sub Timer1_Timer()

Static i As Integer

Dim j As Integer

If i = 0 Then

For j = 0 To 360

shpChess(j).FillColor = vbBlack

Next

i = i + 1

Else

For j = 0 To 360

If Board(j Mod 19, j \ 19) = 1 Then

shpChess(j).FillColor = vbBlack

ElseIf Board(j Mod 19, j \ 19) = 2 Then

shpChess(j).FillColor = vbWhite

Else

shpChess(j).Visible = False

End If

Next

Timer1.Enabled = False

End If

End Sub

Sub CountChess()

Dim total As Byte, black As Byte, white As Byte

Dim i As Integer

Dim j As Integer

For i = 0 To 18

For j = 0 To 18

If Board(i, j) = 1 Then

black = black + 1

ElseIf Board(i, j) = 2 Then

white = white + 1

End If

Next

Next

txtBlack.Text = black

txtWhite.Text = white

txtTotal.Text = black + white

If total = 361 Then MsgBox "Game Over"

End Sub

1

上面就是用VB编程实现围棋开发的整个过程了,在VB知识掌握的前提下,综合应用逻辑思维,根据程序要实现的功能,写代码实现。

更多VB游戏●扫雷游戏如何用VB编程实现?●俄罗斯方块游戏如何用VB编程来实现?●VB编程制作贪吃蛇游戏!VB编程开发--坦克大战游戏的开发

VB编程,功能强大,简单易学,下面是用VB编程开发的部分实际程序展,供大家参考学习。

VB编程

VB是世界上使用人数最多的编程语言之一,广泛应用在我们工作和社会生产活动的方方面面。

在当今信息技术日新月异的时代,编程语言的学习更是对自己的综合能力有很大影响,而VB因其可视化、面向对象、简单易学的特点是最适合学习的编程语言。因此,学好VB编程就显得非常重要了。

下面,我们共同来看一下VB实际项目程序展示。

01

利用VB与数据库结合开发的

自助点餐系统

实现了自助推荐、根据人群自动

匹配菜谱功能

并且具有自动结算、下单、统计功能

02

利用VB与串口通信结合开发的

超市收银支付系统

销售清单列表

信息全面,便于总账统计

03

利用VB开发的九宫格抽奖系统

实现了抽奖与背景音乐的完美融合

04

VB开发的基本程序

05

酒店管理系统

具有订房、退房

结算和用户管理、权限管理等多重功能

06

生产任务自动安排系统

学习VB

掌握一门编程

跟上互联网时代发展节奏

学习VB中有问题或者需要VB视频教程资料可添加老师微信号:vbyjk521 ,学习问题在线答疑。



长按上图,关注跟我学VB公众平台

VB如何自动保存_VB开发的围棋游戏,原来VB可以这么强大!相关推荐

  1. VB如何自动保存_VB开发的身份证个人信息自动识别软件

    今天我们共同来看一下用VB编写的实用小工具--身份证自动提取性别.年龄.出生日期等个人信息的软件. 身份证是我们每个公民都有的,根据它可以唯一识别出具体是某个人. 程序实现功能: 当用户单击" ...

  2. VB如何自动保存_VB编写的身份证号自动识别实用程序

    今天我们共同来看一下用VB编写的实用小工具--身份证号自动提取性别.年龄.出生日期工具. 身份证是我们每个公民都有的,根据它可以唯一识别出具体某个人. 程序实现功能: 当用户单击"输入身份证 ...

  3. VB如何自动保存_VB小课堂初识VB

    又是一年开学日. 新的学期,更是要加油鸭. 不急不躁,每天进步一点点. 一直都说的新教材还是没下来 于是这个学年还是继续VB教学 其实VB这个编程软件真的很老了 已经好多好多年没有更新过了 但是VB语 ...

  4. VB如何自动保存_发酵鱼饵与果酸、VB小药的搭配,这才是夏季钓大鱼的必杀配方!...

    昨天发布的<开鱼饵添加果酸和VB小药,夏季钓鱼才是"双对路"!鱼获暴涨!>一文,介绍了一下夏季钓鱼该如何选择果酸,以及搭配VB类小药,从而实现味型和成分的双对路. 钓鱼 ...

  5. vb.net图书管理系统VS开发sqlserver数据库web结构vb编程源码网页

    一.源码特点         vb.net 图书管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发. 下载地址: vb.net图书管理系统VS开发sql ...

  6. vb红绿灯自动切换_VB红绿灯程序

    <VB红绿灯程序>由会员分享,可在线阅读,更多相关<VB红绿灯程序(4页珍藏版)>请在人人文库网上搜索. 1.VB红绿灯演示Private Sub Command1_Click ...

  7. vb红绿灯自动切换_VB红绿灯程序.doc

    VB红绿灯程序 Private Sub Command1_Click() While (1) Shape1.FillColor = RGB(255, 0, 0) Shape2.FillColor = ...

  8. 基于Mozilla Thunderbird的扩展开发(四)---修改Thunderbird源代码实现自动保存附件...

    <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace ...

  9. android开发之应用Crash自动抓取Log_自动保存崩溃日志到本地

    应用发生crash之后要查看log,判断问题出在什么地方,可是一旦应用发布出去,就要想办法把用户的崩溃日志拿到分析. 所以要在发生crash之后抓取log,然后上传到服务器,方便开发者查看,现在都有很 ...

最新文章

  1. P1984 [SDOI2008]烧水问题
  2. 管理经验之没有必要的消费:空白卡片
  3. OkHttp3中的代理与路由
  4. 2006年9月全国计算机等级考试三级数据库技术笔试试卷(含有答案)
  5. django-admin源码解析
  6. html5 语音直播,一种基于HTML5浏览器的音视频直播方法与流程
  7. 离散数学 之 序偶的关系(自反性,对称性,传递性)
  8. 华三路由器虚拟服务器设置,H3C vLNS系列虚拟L2TP网络服务器 配置指导-E0324-5W100...
  9. Asio Basic Asio Anatomy
  10. Android View绘制6 Draw过程(下)
  11. bootstrap btn 按钮颜色
  12. 谷歌浏览器插件打包ChromePackage-extention
  13. 你瞧不起的低代码开发,阿里云总裁张建锋,他看上了
  14. excel 统计某一列各个值的个数
  15. python操作CAD转存dwg文件
  16. iOS-画一个钉钉圆形带名字的头像
  17. (Modern Family S01E04) Part 1 GayGloria Manny参加slumber party 被捉弄
  18. 帆软数据决策平台连接SAP RFC实例
  19. [转]F#,印度数学教育与优秀编程
  20. 如何用vue做一个二级联动

热门文章

  1. 【2021年度总结】长风破浪会有时,直挂云帆济沧海
  2. OSI七层协议模型及OSI参考模型中的数据封装过程
  3. 贝叶斯分类器(Bayes Classifier)
  4. java环境配置 win0_java环境配置软件
  5. 数字先锋 | 随时随地云端阅片,“云胶片”时代来啦!
  6. 在office中,使用office的宏合并excel表格
  7. Python的打印函数print()中占位符%和format()使用以及f格式化字符串
  8. 三级网络备考——自信
  9. 如何解决神经网络训练时loss不下降的问题
  10. linux下终端中区分数字0和字母o及数字1和字母l