VB编写猜数字小游戏教程
周记400字大全-羞涩
VB编写猜数字小游戏傻瓜教程
本人原创,只在百度文库发布,希望对想学
习VB的朋友有所帮助,提高学习VB的兴趣。本文以VB6
为例介绍编写一个最简单的猜数字小游戏过
程,VB6在百度上很容易搜索到,本文所需要控件极少,安装
一个大小只有6MB的VB6精简版就可
以体验了。不敢说“抛砖引玉”,只怕抛个小砖换来个板儿砖。总
之,本文重点不是从零开始学VB,主
要是介绍编写这个小游戏的过程。
首先,启动VB,然后点击文件菜单,点击新建一个工程,即可出现
如下界面。按照下图红色箭头的
指向,鼠标在左侧工具条上拖一个文本标签、一个文本输入框、一个按钮
到工程界面里边来,然后调整大
小和位置大概跟下图比例差不多就行了。
接着,点击label标签,在右边属性窗口里调整字体大小为三号字,因为默认的字体太小了,不
爽。
什么?三号字还小?那你自己看着办吧,但我可要告诉你哦,等下显示的内容超出显示区域可别怪我
。
改好了吗?本次编程就这三个控件,菜吧?现在双击工程界面的空白区域,不要点在
控件上了哦。双
击空白区域后,就弹出了代码编写窗口。按照下图把代码一个一个给我打上去。
都好几分钟了,打上去了吗?哦,忘了告诉你,复制下面的代码也是一样的。
代码:
Dim cai As Integer '定义一个变量用来存储欲猜的数字
Private Sub Form_Load()
Randomize '重设随机因子
n = 请填入你猜测的数字 '让label1显示为空
=
'让text1文本显示为空
n = 确定 '让command1显示为确定
cai =
Int(Rnd * 899) + 100 '随机选择一个三位数作为欲猜的数字
End Sub
以上代码都做了注释,就不需要过多说明了。这里主要说明两个:一是Randomize是
用来重设随机因
子的,如果删除这句,那么每次运行猜的数字都是一样的,没有新鲜感了。二是int(
Rnd * 899)+100的意
思是让电脑随机产生一个100以上,1000以下的数字,实际上
就是100-999的范围。如果你改成89和10,
那么就是10-99以内的两位数,同理改成89
99 1000就是1000-9999的四位数。。。。。。。等本文介绍完以后,
你可以依葫芦画瓢
慢慢搞。
接下来,按照上图所示,双击Command1按钮,在程序代码区给我打上图中红色区域的代码。 <
br>几分钟又过去了,打完了吗?还是那句话,复制下面的代码也是一样的。但要注意,如果你真的打代
码,必须打在Private Sub Command1与End
sub过程里面,不能打在外面的空白区域,否则会出错哦。
If Text1 =
你还没有输入任何内容提示
If Not IsNumeric() Then MsgBox
你输入的不是数字提示
If Val() <> cai Then
MsgBox 你猜的不正确,请重新猜提示
=
Else
MsgBox 恭喜你,猜对啦!提示
End
End If
以
上需要说明的是:前两个IF判断语句是为了判断是否输入了数字,输入的是否是非英文等其他非数
字。
然后下面用了Val函数,这个函数是用来将Text1填写的字符串转换为数字型,这样才能与数字型cai<
br>变量作比较,不同类型的变量不能进行直接比较。虽然你在Text1文本框里面输入的是数字,但它也是
字
符型的数字,并不是真正的数字(可以这样理解,我们用引号来代表字符串,那么:字符串“123”
与数
字123虽然显示出来都是123,但其实类型是不一样的,字符串“123”跟“ABC”是一样
的类型,它不能
参与运算,因为他只是录入的字符而已。),经过判断,作两手准备,一个是猜不对的情
况,我们提示错误,
清空刚才填写的数字,然后继续猜;另一个是猜对的情况,我们提示猜对了,然后通
过END来结束程序
的运行。
好啦,大功告成了。现在点击运行按钮(VB软件快
捷按钮栏有个向右三角型的播放按钮)或者直接
按键盘上F5键即可查看效果。。。。。。
过
了八个小时,你发现终于猜对了是吧?程序停不下来,你一直猜中了,恭喜你呀!忘了告诉你,程
序运行中,可以按VB软件上的方框按钮来终止程序运行,不好意思啊,害你玩的这么嗨!好了,这样就
完成了一个非常简单的猜数字游戏的设计,但你明显发现了,这样去猜数字,猜中的机率有点小了,因为
猜错了只会单纯的提示猜错了,并不会提示猜测的效果。如果是两位数的话,大不了猜几十次就猜出来了
,
但是三位数、四位数甚至更多的话,那猜起来就可费劲了,所以我们再次把代码优化一下,让程序给猜
数
字的人作一些提示。我们可以对程序进行一下小改动,让他更加有趣点。优化的内容就包含在Comm
and1
按钮的子程序过程里,这次就不害你啦,以下即是优化后的内容,直接复制并替换掉comma
nd1的整个过
程:
If Text1 = 你还没有输入任何内容提示
If
Not IsNumeric() Then MsgBox 你输入的不是数字提示
If
Val() <> cai Then
If cai > Val() Then
MsgBox 小了提示
Else
MsgBox 大了提示
End If
=
Else
MsgBox
恭喜你,猜对啦!提示
End
End If
从以上代码中不难
看出,我们改动的语句就是粽色的那部分,无非是将两个数字进行大小的比较,得
出“大了”还是“小了
”的提示,这个相信不难理解的。
现在点击运行按钮或者直接按键盘上F5键即可查看效果。
你会发现程序变的聪明些了,他会提示你猜的数字相对于欲猜的数是大了还是小了
,直到你猜对为止。
什么,这个被你秒杀了?看来从刚才八小时到1秒,你进步如坐神舟火箭啊,这个难
度太小了对吧?那你
还是用最先代码吧,跟它继续拼了!呵呵。如果觉得想再稍微增加点难度,我们还可
以对程序进行小小的
改动,增加是否有一部分数字已经被猜中的提醒。优化的内容就包含在Comman
d1上,以下是优化后的内
容,可以直接复制并替换掉command1的整个过程内容:
If Text1 = 你还没有输入任何内容提示
If Not IsNumeric()
Then MsgBox 你输入的不是数字提示
If Val() <>
cai Then
Dim cai_num As Integer
'定义一个变量用于存储是否猜中了多少
For i = 1 To Len()
If InStr(1, Str(cai), Mid(, i, 1)) > 0 Then
'如果猜中其中一个数字
cai_num = cai_num + 1
'就累加1次猜中的数量
End If
Next
If cai_num <> 0 Then '判断是否猜中部分数字,并显示结果
MsgBox 你本次猜对了个数字,继续加油!提示
Else
MsgBox 你猜的完全不正确,请重新猜!
End If
=
Else
MsgBox
恭喜你,猜对啦!提示
End
End If
以上代码相对于上
一次改动的代码来说,稍微复杂了一点,我们慢慢来分析一下重点吧。本次判断多
了for、len、i
nstr以及mid是之前没有的,这当中for直到next是一个条件循环区域,目的是把你输入的
数字通过mid函数逐一取出来,通过instr函数来探测是否在欲猜的数中有被猜中的数字,len()的<
br>意思是取得text1里面输入的数字长度,以此来作为for循环运行的次数。什么?头有点晕?想睡一
觉?别
呀,我这么跟你简单说下吧:
For循环的通常用法是:
for
变量=开始数 to 结束数
这里是每次循环时需要运行的内容
next next在这里的意思是如果for还没有循环完就继续回到for重复运行,直到完成for的条件后才执
行next之后的内容,注意哦:如果你搞个永远都运行不完的条件,那么next将无限运行,直到你
强退!
什么?开始数到结束数总要运行完的呀,怎么会永远运行?举个简单例子:你比如,首先b=2:
for i=b to 100,
意思就是从2到100,但是你在每次循环时需要运行的内容里面写上
b=2,那么再次循环时,b又等于2
了,for就死在永远2上了。
mid函数的通常用法是:
mid(字符串,起始位置,取几个字符)
比如:mi
d(,2,1),代表从的第二位开始取1个字符。当然,如果字符串只有3个,
你来个mid(,2,
5)是不行的,5已经超出需要取出的字符了,正所谓巧妇都难做无米之炊呀,你叫
人家mid怎么给你
取出来呀!
Instr函数的通常用法是:
Instr(起始位置,需要查找的字符串,查找什么字符)
比如:instr(1,,”abc
”),代表从字符串第1个字符开始,查找里面有没有abc字符
存在,通过if或一个变量=的形式可
以取出instr查找的值,如果值>0代表找到了,值<1代表没有找到。
其实这个找到的值就是这个
abc字符在某个字符串中最先出现的字符排序位置。
现在点击运行或按F
5键运行上面的代码,你就可以看到类似上图的画面了。现在开猜吧,比如你可
以首先猜123,如果他
提示有2个数字猜中,那么你就猜125,如果他提示只有1个数字正确,那么你就
猜135,如果13
5提示2个数字正确,那么可以确定要猜的数字里面有13,这时还差一个数了,加上13
以后多尝试最
后一位数,直到提示三个数都符合要求,那么就只剩下三个数的排列问题了。但是,如果你
遇到欲猜的数
字有相同的情况,比如要猜的数字是255,那么会增加猜测的难度哦,比如这时你输入456,
他会提
示你猜对了1个,这种情况下你通常不会一下想到5有两个,需要再多猜几次才能知道,不过出现
重复的
数字机率还是相对较小的。
好了,学习到这里也暂告一段落了,其实是本人再往下已经编不出什么再高
超的东西了,呵呵。如果
你觉得有兴趣,可以把这个程序的界面颜色美化一下,排版更好看一点。甚至还
可以通过它再强化一下代
码,增加更复杂一点的语句,实现如:第二位猜中了,其他没中或者第一、三位
猜中了,其他没中的表现
形式,再加上猜中了和没猜中发出不同的音效就更有游戏趣味兴了。慢慢改吧,
本文代码很简陋,只求实
现基本功能,并没有追求代码精益求精,希望对初学的你阅读后有所收获,做出
比我更加好玩的程序来。
“准备下课!”,话音未了,我看到了你,连电脑都顾不上关,拿着一个神秘宝
盒一阵青烟就冲了出去,远
处探子回报:他在食堂。。。。。。