东华理工大学
VB课程设计
题目:猜数字游戏
班级:10410111
学号:1041011112
姓名:石头
指导老师:吴强
一、 课程设计的目的
课程设计为学生提供了一个既能动手又能动脑,独立实践的机会,将课本上的vb课理论知识和实践有机的结合起来,锻炼学生的分析解决实际问题的能力、提高运用vb应用的能力。
二、 课程设计题目和简介
猜数字游戏;游戏开始时系统将随机产生一个数字不同的四位数,玩家根据游戏提示纠正答案(1A0B:表示猜中一个数字且位置正确;2A2B:有两个数字正确且位置正确有两个数字正确当位置不正确)输入的数字不能相同也不能为空而且只有十次机会。
三、 设计说明
四、 源代码
进入界面form1
Private Sub Command1_Click()
Load Form2
Form2.Show [vbModal]
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Form1.WindowState = vbMaximized ‘使运行时窗体最大化
End Sub
准备界面form2
Private Sub Command1_Click()
Load Form3
Form3.Show [vbModal]
End Sub
Private Sub Command2_Click()
Form2.Hide
End Sub
Private Sub Form_Load()
Form2.WindowState = vbMaximized
Label1.Caption = "系统将随机产生一个数字不同的四位数,你可以根据提示纠正自己的错误但你只有十次机会!准备好了吗?"
End Sub
开始游戏界面form3
Dim a1 As Integer, a2 As Integer, a3 As Integer, a4 As Integer
Private Sub Command1_Click()
Randomize '初始化随机数发生器
Label1.Caption = 0 & "A" & 0 & "B"
a1 = Int(10 * Rnd) '产生随机数
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
Label2.Caption = "已经随机产生了一个数字(0~9)不同的四位数!猜猜是什么数吧!"
Text1.FontSize = 45 '设置text文本框内字的大小
Text2.FontSize = 45
Text3.FontSize = 45
Text4.FontSize = 45
Text1.MaxLength = 1 '定义text文本框内能输入的长度
Text2.MaxLength = 1
Text3.MaxLength = 1
Text4.MaxLength = 1
Text1.SetFocus
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Form_Load() '使窗体最大
Form3.WindowState = vbMaximized
End Sub
Private Sub Text1_Change() '设置text change 事件,当前一个文本框输入一个数时则下一个文本框获得焦点
If Len(Text1.Text) = 1 Then
Text2.SetFocus
End If
End Sub
Private Sub text2_change()
If Len(Text2.Text) = 1 Then
Text3.SetFocus
End If
End Sub
Private Sub text3_change()
If Len(Text3.Text) = 1 Then
Text4.SetFocus
End If
End Sub
Private Sub Command2_Click()
Static cishu
Dim tmp1 As Integer, tmp2 As Integer, tmp3 As Integer, tmp4 As Integer
Dim A As Integer, B As Integer
A = 0
B = 0
If cishu = 9 Then
MsgBox "很遗憾 !你已经猜了10次答案是" & a1 & a2 & 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, "猜数字游戏"
End If
If tmp2 = tmp3 Or tmp2 = tmp4 Or tmp2 = tmp1 Then
MsgBox "输入的数字不能相同,请重新输入", 16, "猜数字游戏"
End If
If tmp3 = tmp4 Or tmp3 = tmp2 Or tmp3 = tmp1 Then
MsgBox "输入的数字不能相同,请重新输入", 64, "猜数字游戏"
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
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
Label1.Caption = A & "A" & B & "B" '把比较出的结果做出提示
If A = 4 Then
MsgBox "恭喜你,你猜对了!" & "你一共猜了" & cishu & "次", "猜数字游戏"
End If
End Sub
Private Sub text1_Click() 'text click单击事件,清空文本框内的数据
Text1.Text = ""
End Sub
Private Sub text2_Click()
Text2.Text = ""
End Sub
Private Sub text3_Click()
Text3.Text = ""
End Sub
Private Sub text4_Click()
Text4.Text = ""
End Sub
五、 运行结果
进入界面form1
准备界面form2
开始游戏界面form4
六、 课程设计体会
实践能够检验是否收获。通过本次课程设计我不仅对课本知识加深了印象和了解,也明白了如何把理论知识运用到现实中实践,同时也学到了许多有关vb的课外的知识比如在查阅
资料
新概念英语资料下载李居明饿命改运学pdf成本会计期末资料社会工作导论资料工程结算所需资料清单
过程中我学会了产生随机数的多种方法:一次性随机产生四位数;每次随机产生一个数组合成四位数,可定义动态数组也可定义几个变量去实现。在定义计数变量时把它设为静态变量以及如何使指定的对象什么时候获得焦点等。在完成课程设计过程中锻炼了我分析解决实际问题的能力。开始时并不是很顺利对课本内的知识掌握的不太好,很多知识点被遗忘、不清楚,也暴露出了对vb操作环境的不熟悉,和对一些控件的不熟以及对一些事件属性不了解但通过这次课程设计大半部分出现的问题都得到了解决。设计这款游戏让我更加了解了vb开发环境有用性和前景性更加培养了我对学习visual basic 程序设计的热情和信念。