大家好,每一天,我们都要有新的目标,这样才能激励自己不断进步与提高!
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公众平台