案例:实现一个随机数值的猜测。
需要两个窗体:
form1窗体界面
form2窗体界面
在form1中的按钮文字,我们通过代码来实现,同时输出几个随机数做练习。
form1窗体的代码:
Private Sub Command1_Click() Form2.Show End Sub Private Sub Form_Load() Show Print Int(5.8) Print Int(-1.2) Randomize Print Int(Rnd * 101) '修改按钮文字为“开始游戏” Command1.Caption = "开始游戏" End Sub
其中,Form2.Show表示显示form2窗体。
这里要注意的是,在打印print输出前,在form_load事件中要加上关键字Show
int函数表示向下取整函数。
PrintInt(5.8)打印输出的结果是5
PrintInt(-1.2)打印输出结果为-2
注意负数的向下取整会与整数的思维比较不同,但总体原则都是取比原来数值小的最接近的那个整数。
Randomize是随机数种子,可以使得增大随机数不同的概率。
PrintInt(Rnd * 101)表示输出[0,101)之间的随机整数。
Command1.Caption = "开始游戏"表示给form1中的那个按钮赋值一个文字。
form1效果图
form2窗体代码:
Dim a As Integer Private Sub Command1_Click() Dim s As String s = InputBox("请输入猜测的数值:", "猜测消息") Print s If Val(s) > a Then MsgBox "猜大了", , "消息" ElseIf Val(s) < a Then MsgBox "猜小了", , "消息" Else msgxo "恭喜你,才对了!可以买彩票啦!" End If End Sub Private Sub Form_Load() Form2.Caption = "猜数字游戏--作者:辣椒油" '给变量a赋值,赋值为一个随机数 Randomize '系统随机生成一个1~100之间的随机整数 a = 1 + Int(Rnd * 100) Show Print "系统已经随机生成一个1~100之间的随机整数" Print a End Sub
注意:
Dim a As Integer是在form2窗体的“通用”中的,表示form2窗体的全局变量。
Dim s As String表示声明一个自定义的变量s为字符串类型。
InputBox("请输入猜测的数值:", "猜测消息")输出的结果是一个字符串类型,因此,我们将输出结果返回到s中
Val(s) > a 在if语句中进行比较的时候,我们要把比较的值都转为数值类型才能正常比较。
val函数的作用:就是将字符串类型转为数值类型。
我们通过以下语句来进行判断是否猜中数值:
If Val(s) > a Then MsgBox "猜大了", , "消息" ElseIf Val(s) < a Then MsgBox "猜小了", , "消息" Else msgxo "恭喜你,才对了!可以买彩票啦!" End If
这里的if...elseif...else ....end if 这个语句中的if条件只会进入其中某一条。
效果图
form2效果图
猜测效果图:
正在输入猜测数值
猜大的情况
猜小的情况
猜对的情况
补充思考:
添加一个form3窗体,作用是“倒计时游戏开始时间”。
我们将form1窗体的开始游戏按钮,点击后,跳转到form3窗体,然后,form3窗体默认从10开始倒计时,每一秒减去一,直到为0时,跳转到游戏窗体form2窗体。
项目结构如下图:
form3窗体的界面设计如下图:
form3窗体源代码:
Private Sub Form_Load() Me.Caption = "游戏倒计时..." Label1.Caption = 10 End Sub Private Sub Timer1_Timer() Label1.Caption = Val(Label1.Caption) - 1 If Label1.Caption = "5" Then Form2.Show Timer1.Enabled = False End If End Sub