VB如何自动保存_VB开发的围棋游戏,原来VB可以这么强大!
大家好,每一天,我们都要有新的目标,这样才能激励自己不断进步与提高!
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可以这么强大!相关推荐
- VB如何自动保存_VB开发的身份证个人信息自动识别软件
今天我们共同来看一下用VB编写的实用小工具--身份证自动提取性别.年龄.出生日期等个人信息的软件. 身份证是我们每个公民都有的,根据它可以唯一识别出具体是某个人. 程序实现功能: 当用户单击" ...
- VB如何自动保存_VB编写的身份证号自动识别实用程序
今天我们共同来看一下用VB编写的实用小工具--身份证号自动提取性别.年龄.出生日期工具. 身份证是我们每个公民都有的,根据它可以唯一识别出具体某个人. 程序实现功能: 当用户单击"输入身份证 ...
- VB如何自动保存_VB小课堂初识VB
又是一年开学日. 新的学期,更是要加油鸭. 不急不躁,每天进步一点点. 一直都说的新教材还是没下来 于是这个学年还是继续VB教学 其实VB这个编程软件真的很老了 已经好多好多年没有更新过了 但是VB语 ...
- VB如何自动保存_发酵鱼饵与果酸、VB小药的搭配,这才是夏季钓大鱼的必杀配方!...
昨天发布的<开鱼饵添加果酸和VB小药,夏季钓鱼才是"双对路"!鱼获暴涨!>一文,介绍了一下夏季钓鱼该如何选择果酸,以及搭配VB类小药,从而实现味型和成分的双对路. 钓鱼 ...
- vb.net图书管理系统VS开发sqlserver数据库web结构vb编程源码网页
一.源码特点 vb.net 图书管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发. 下载地址: vb.net图书管理系统VS开发sql ...
- vb红绿灯自动切换_VB红绿灯程序
<VB红绿灯程序>由会员分享,可在线阅读,更多相关<VB红绿灯程序(4页珍藏版)>请在人人文库网上搜索. 1.VB红绿灯演示Private Sub Command1_Click ...
- vb红绿灯自动切换_VB红绿灯程序.doc
VB红绿灯程序 Private Sub Command1_Click() While (1) Shape1.FillColor = RGB(255, 0, 0) Shape2.FillColor = ...
- 基于Mozilla Thunderbird的扩展开发(四)---修改Thunderbird源代码实现自动保存附件...
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace ...
- android开发之应用Crash自动抓取Log_自动保存崩溃日志到本地
应用发生crash之后要查看log,判断问题出在什么地方,可是一旦应用发布出去,就要想办法把用户的崩溃日志拿到分析. 所以要在发生crash之后抓取log,然后上传到服务器,方便开发者查看,现在都有很 ...
最新文章
- P1984 [SDOI2008]烧水问题
- 管理经验之没有必要的消费:空白卡片
- OkHttp3中的代理与路由
- 2006年9月全国计算机等级考试三级数据库技术笔试试卷(含有答案)
- django-admin源码解析
- html5 语音直播,一种基于HTML5浏览器的音视频直播方法与流程
- 离散数学 之 序偶的关系(自反性,对称性,传递性)
- 华三路由器虚拟服务器设置,H3C vLNS系列虚拟L2TP网络服务器 配置指导-E0324-5W100...
- Asio Basic Asio Anatomy
- Android View绘制6 Draw过程(下)
- bootstrap btn 按钮颜色
- 谷歌浏览器插件打包ChromePackage-extention
- 你瞧不起的低代码开发,阿里云总裁张建锋,他看上了
- excel 统计某一列各个值的个数
- python操作CAD转存dwg文件
- iOS-画一个钉钉圆形带名字的头像
- (Modern Family S01E04) Part 1 GayGloria Manny参加slumber party 被捉弄
- 帆软数据决策平台连接SAP RFC实例
- [转]F#,印度数学教育与优秀编程
- 如何用vue做一个二级联动
热门文章
- 【2021年度总结】长风破浪会有时,直挂云帆济沧海
- OSI七层协议模型及OSI参考模型中的数据封装过程
- 贝叶斯分类器(Bayes Classifier)
- java环境配置 win0_java环境配置软件
- 数字先锋 | 随时随地云端阅片,“云胶片”时代来啦!
- 在office中,使用office的宏合并excel表格
- Python的打印函数print()中占位符%和format()使用以及f格式化字符串
- 三级网络备考——自信
- 如何解决神经网络训练时loss不下降的问题
- linux下终端中区分数字0和字母o及数字1和字母l