案例:实现一个随机数值的猜测。
需要两个窗体:
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函数表示向下取整函数。
Print Int(5.8)打印输出的结果是5
Print Int(-1.2)打印输出结果为-2
注意负数的向下取整会与整数的思维比较不同,但总体原则都是取比原来数值小的最接近的那个整数。
Randomize是随机数种子,可以使得增大随机数不同的概率。
Print Int(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
注意:
我们通过以下语句来进行判断是否猜中数值:
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