当前位置:
文档之家› VB猜数字游戏课程设计报告1
VB猜数字游戏课程设计报告1
设计说明
开始游戏
Randomize 产生随机数
用户输入值
确定 比较随机值与输入值
给出提示
退出游戏
设计思路
首先要创建三个窗口,form1 是进入游戏界面,form2 是游 戏运行界面,form3 是游戏规则介绍。
1
其次要按要求实现三个窗口的 show 与 hide 在代码为 Private Sub command*_click() form*.show Form*.hide End sub 在 form3 中我没有用这种方法,因为在 form3 中又关闭按钮, 如果想之前一样的话,按关闭按钮就直接退出游戏了,而我想要实现 是再次回到游戏进入界面,所以有用了一个方法 代码为: Private sub form_unload(Cancle as integer) Form1.show End sub 这样子就防止之前那种情况的发生了 下一步开始创建控件 现在 form1 中创建游戏进入界面,根据游戏需要应该创建 3 个 command 控件,和一个 label 控件
a3 & a4, , "猜数字" Exit Sub
End If tmp1 = Val(Text1.Text) tmp2 = Val(Text2.Text) tmp3 = Val(Text3.Text) tmp4 = Val(Text4.Text)
If tmp1 = tmp2 Or tmp1 = tmp3 Or tmp1 = tmp4 Then MsgBox "输入的数字不能相同,请重新输入", 48, "猜数
Command2.Enabled = False Command3.Enabled = False
8
Label1.BackStyle = 0 Label2.BackStyle = 0 End Sub
Private Sub Text1_Change()
Text 控件中焦点的设置
If Len(Text1.Text) = 1 Then
Command2.Enabled = True Command3.Enabled = True Randomize 随机产生四个不同的数字 Label2.Caption = 0 & "A" & 0 & "B"
a1 = Int(10 * Rnd) Do
a2 = Int(10 * Rnd) Loop While a2 = a1
这个界面中我把最大化与最化省去了,然后把关闭按钮编写了一下 在 form3 的属性栏中吧 minbutton 和 maxbutton 的属性改为 false 这样子就不会有最大最小化按钮了剩下的就编写代码了
Private Sub Form_Load() Label1.BackStyle = 0
End Sub Private Sub Form_unload(Cancle As Integer)
11
B=B+1 End If If tmp4 = a4 Then
A=A+1 ElseIf tmp4 = a1 Or tmp4 = a2 Or tmp4 = a3 Then
B=B+1 End If Label2.Caption = A & "A" & B & "B" If A = 4 Then MsgBox "恭喜你,你猜对了!" & "你一共猜了" & cishu & " 次",, "猜数字游戏" End If End Sub Private Sub text1_Click() 设置鼠标点解 text 自动消除数字 Text1.Text = "" End Sub Private Sub text2_Click() Text2.Text = "" End Sub Private Sub text3_Click() Text3.Text = "" End Sub
字游戏" End If If tmp2 = tmp3 Or tmp2 = tmp4 Or tmp2 = tmp1 Then MsgBox "输入的数字不能相同,请重新输入", 16, "猜数
字游戏" End If
10
If tmp3 = tmp4 Or tmp3 = tmp2 Or tmp3 = tmp1 Then MsgBox "输入的数字不能相同,请重新输入", 64, "猜数
Dim tmp1 As Integer, tmp2 As Integer, tmp3 As Integer,
9
tmp4 As Integer
Dim A As Integer, B As Integer A=0 B=0
If cishu = 9 Then MsgBox "很遗憾 !你已经猜了 10 次答案是" & a1 & a2 &
12
Private Sub text4_Click() Text4.Text = ""
End Sub 另外需要设置 text 中数字的大小和输入长度,在 font 属性栏中设置 数字的大小,在 maxlength 的属性栏中改为 1,使在 text 控件中只 能输入一个数字。 做完这些,剩下的就是修饰了, 让这个自己做好的游戏看起来更好 看一些,就需要在各个 form 界面上加载自己喜欢的图片,让界面更 丰富一些,不至于太单调,一样的方法,需要在你想添加图片的 form 控件属性栏中找到 picture 属性然后加载自己喜欢的图片,需要的话 再把不同位置的字体也设置一下,让字体不至于进入图片中找不到
End Sub
3
Private Sub Form_Load()
Label1.BackStyle = 0
把 label1 的背景方式改为透明
End Sub
当 然 也 可 以 在 form1 的 界 面 上 加 上 自 己 喜 欢 的 图 片 , 需 要 在
picture 中加载
然后在 form3 中设计游戏规则界面
运行结果
进入界面 form1
13
游戏规则 form3 开始游戏界面 form2
14
课程设计体会
实践能够检验是否收获。通过本次课程设计我不仅对课本知 识加深了印象和了解,也明白了如何把理论知识运用到现实 中实践,同时也学到了许多有关 vb 的课外的知识比如在查
15
阅资料过程中我学会了产生随机数的多种方法:一次性随机 产生四位数;每次随机产生一个数组合成四位数,可定义动 态数组也可定义几个变量去实现。在定义计数变量时把它设 为静态变量以及如何使指定的对象什么时候获得焦点等。在 完成课程设计过程中锻炼了我分析解决实际问题的能力。开 始时并不是很顺利对课本内的知识掌握的不太好,很多知识 点被遗忘、不清楚,也暴露出了对 vb 操作环境的不熟悉, 和对一些控件的不熟以及对一些事件属性不了解但通过这 次课程设计大半部分出现的问题都得到了解决。设计这款游 戏让我更加了解了 vb 开发环境有用性和前景性更加培养了 我对学习 visual basic 程序设计的热情和信念。
End Sub
Private Sub Command2_Click()
重新开始游戏的设置
cishu = 0
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Randomize
Label2.Caption = 0 & "A" & 0 & "B"
Form1.Show End Sub 也可以在 form3 界面中加载自己喜欢的图片
下面的也是这个程序中最重要的程序——游戏的编写 首先应该创建控件
5
也就是说要创建 4 个 command 控件和 4 个 text 控件 2 个 label 控件 然后开始编写代码 Dim a1 As Integer, a2 As Integer, a3 As Integer, a4 As Integer Public cishu As Integer Private Sub Command1_Click() 在点击开始按钮之后 command 是可见的,可使用的
a1 = Int(10 * Rnd)
7
Do a2 = Int(10 * Rnd) Loop While a2 = a1
Do a3 = Int(10 * Rnd) Loop While a3 = a1 Or a3 = a2
Do a4 = Int(10 * Rnd) Loop While a4 = a1 Or a4 = a2 Or a4 = a3
16
字游戏" End If If tmp4 = tmp1 Or tmp4 = tmp2 Or tmp4 = tmp3 Then MsgBox "输入的数不能相同,请重新输入", 48, "猜数字
游戏" End If cishu = cishu + 1 If tmp1 = a1 Then A=A+1 ElseIf tmp1 = a2 Or tmp1 = a3 Or tmp1 = a4 Then B=B+1 End If If tmp2 = a2 Then A=A+1 ElseIf tmp2 = a1 Or tmp2 = a3 Or rmp2 = a4 Then B=B+1 End If If tmp3 = a3 Then A=A+1 ElseIf tmp3 = a1 Or tmp3 = a2 Or tmp3 = a4 Then