随着Windows95and98的流行,越来越多的人加入Windows程序设计的队伍之中。以前,Windows程序设计是那些训练有素的专业程序设计者才会涉足的神秘领域,几乎所有的Windows程序都是用C/C++语言编写的,这对大部分普通程序设计者来说,要想高效迅速地编写出具有一定功能的Windows程序就不是一件容易的事情了。
1991年,Microsoft公司首次推出了VisualBasicforWindows,从此,人们不用C/C++或汇编就可以编写Windows程序了。到目前为止,我认为在所有的Windows程序设计工具中,VisualBasic是最方便的,它以一种全新的思想让程序员快捷和高效地设计出Windows程序。目前,VisualBasic的最高版本为6.0,本文讲述用运行于Win95/98上的VB6.0来开发一个猜数字的小游戏。
首先说一说猜数字这个游戏的玩法,一开始计算机会随机产生一个不重复的四位数,你要输入四位不重复的数与计算机给出的数作对比,如果与计算机给出的数的位置相同数字相同,那么将会是1A,如果数字相同而位置相不同,将会显示1B。例如:计算机的随机数字为:1234,我猜的数字为:1356,那么这时计算机会给你提示为:1A1B,也就是说,你猜的数字中,有一位数字是猜对的,而且数字位置都对,所以显示为1A;还有一个数字也猜对了,但是位置不对,所以显示为1B。就这些了,看谁猜的次数少。
首先在Form中加入一个CommandButtion控件,在Command1上点击鼠标右键,选择复制,在窗体上点击鼠标右键,选择粘贴在窗体上粘贴出九个Command1,此时出现对话框问你要不要创建控件数组,在此选择是。然后再加入两个CommandButtion控件,一个ListBox、一个Frame、一个Label。设置窗体的Caption属性为“猜一猜”、BorderStyle为1-FixedSingle、控件数组的Captin分别为0、1、2、3、4、5、6、7、8、9,Command2的Caption为“确定”,Command3的Caption为“取消”,Frame1的Caption为“提示:”,Label1的Cpation为“0A0B”。然后选择菜单编辑器编辑菜单为:游戏、新游戏、显示答案、结束游戏,她们的Name属性分别为:Game、New、View、End。好了,其余属性使用缺省的即可,最后的界面应跟下图一样:
以下是程序清单:
DimPcA,PcB,PcC,PcDAsInteger电脑给出的每一位数
DimUserA,UserB,UserC,UserDAsInteger用户输入的每一位数
DimDegreeAsInteger用户猜了几次
DimNumAsInteger判断用户输入次数的变量
PrivateSubForm_Load()
程序运行行时
初始化
Fori=0To9
Command1(i).Enabled=False
Nexti
Command2.Enabled=False
Command3.Enabled=False
View.Enabled=False
EndSub
PrivateSubNew_Click()
开始一个新游戏时
View.Enabled=True可以看答案
List1.Clear清空列表框
Degree=0
对随机数生成器做初始化
Randomize
Num=1
Label1.Caption=0&“A”&0&“B”
电脑给出的每一位数
PcA=Int(9*Rnd)
Do
PcB=Int(9*Rnd)
LoopWhilePcB=PcA
Do
PcC=Int(9*Rnd)
LoopWhilePcC=PcAOrPcC=PcB
Do
PcD=Int(9*Rnd)
LoopWhilePcD=PcAOrPcD=PcBOrPcD=PcC
Fori=0To9
Command1(i).Enabled=True
Nexti
Command2.Enabled=False
Command3.Enabled=True
EndSub
PrivateSubCommand1_Click(IndexAsInteger)
用户输入时
使得输入过的按钮无效
IfNum<=4Then
Command1(Index).Enabled=False
EndIf
判断用户输入了几位,如果输入了四位则确认按钮有效
IfNum=4Then
Command2.Enabled=True
EndIf
取得用户输入
SelectCaseIndex
Case0
UserEnter(0)调用UserEnter过程
Case1UserEnter(1)
Case2UserEnter(2)
Case3UserEnter(3)
Case4UserEnter(4)
Case5UserEnter(5)
Case6UserEnter(6)
Case7UserEnter(7)
Case8UserEnter(8)
Case9UserEnter(9)
EndSelect
EndSub
PrivateSubCommand2_Click()
单击确定按钮时
判断用户输入是否正确
DimA,BAsInteger
A=0
B=0
Degree=Degree+1
IfUserA=PcAThen
A=A+1
ElseIfUserA=PcBOrUserA=PcCOrUserA=PcDThen
B=B+1
用VisualBASIC6.0开发猜数字小游戏EndIf
IfUserB=PcBThen
A=A+1
ElseIfUserB=PcAOrUserB=PcCOrUserD=PcDThen
B=B+1
EndIf
IfUserC=PcCThen
A=A+1
ElseIfUserC=PcAOrUserC=PcBOrUserC=PcDThen
B=B+1
EndIf
IfUserD=PcDThen
A=A+1
ElseIfUserD=PcAOrUserD=PcBOrUserC=PcCThen
B=B+1
EndIf
显示提示
Label1.Caption=A&“A”&B&“B”
List1.AddItemUserA&UserB&UserC&UserD&“”&Label1.Caption
初始化输入按钮
Command2.Enabled=False
Fori=0To9
Command1(i).Enabled=True
Nexti
Num=1
判断输赢
IfA=4Then
MsgBox“你猜对了!”&“你一共猜了”&Degree&“次”
Fori=0To9
Command1(i).Enabled=False
Nexti
Command2.Enabled=False
EndIf
EndSub
PrivateSubCommand3_Click()
单击取消按钮时
Num=1
Fori=0To9
Command1(i).Enabled=True
Nexti
Command2.Enabled=False
EndSub
PrivateSubView_Click()
显示答案时
MsgBox“答案是:”&PcA&PcB&PcC&PcD&“你答对了吗?”
EndSub
PrivateSubEnd_Click()
游戏结束时
End
EndSub
SubUserEnter(i)取得用户输入
IfNum=1Then
UserA=i
Num=Num+1
ElseIfNum=2Then
UserB=i
Num=Num+1
ElseIfNum=3Then
UserC=i
Num=Num+1
ElseIfNum=4Then
UserD=i
Num=Num+1
Else:MsgBox“四位数够了!”
EndIf
EndSub
运行程序,选择新游戏,就可以开始玩你自己开发的游戏了。
上面程序在Win95,VB6下运行通过。->