vb猜数字游戏课程设计报告

更新时间:2023-03-18 13:20:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

猜数字游戏

猜数字游戏实验报告

课程设计的目的

课程设计为学生提供了一个既能动手又能动脑,独立实践的机会,将课本上的vb课理论知识和实践有机的结合起来,锻炼学生的分析解决实际问题的能力、提高运用vb应用的能力。

课程设计题目和简介

猜数字游戏;游戏开始时系统将随机产生一个数字不同的四位数,玩家根据游戏提示纠正答案(1A0B:表示猜中一个数字且位置正确;2A2B:有两个数字正确且位置正确有两个数字正确当位置不正确)输入的数字不能相同也不能为空而且只有十次机会。

设计说明

设计思路

首先要创建三个窗口,form1是进入游戏界面,form2是游戏运行界面,form3是游戏规则介绍。

其次要按要求实现三个窗口的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控件

然后开始编写代码 代码如下 Private Sub Command1_Click() Form1.Hide form2.Show End Sub

Private Sub Command2_Click() Form1.Hide Form3.Show End Sub

Private Sub Command3_Click() End End Sub

Private Sub Form_Load()

Label1.BackStyle = 0 把label1的背景方式改为透明 End Sub

当然也可以在form1的界面上加上自己喜欢的图片,需要在picture中加载

然后在form3中设计游戏规则界面

这个界面中我把最大化与最化省去了,然后把关闭按钮编写了一下 在form3的属性栏中吧minbutton和maxbutton的属性改为false这

样子就不会有最大最小化按钮了剩下的就编写代码了 Private Sub Form_Load() Label1.BackStyle = 0 End Sub

Private Sub Form_unload(Cancle As Integer) Form1.Show End Sub

也可以在form3界面中加载自己喜欢的图片

下面的也是这个程序中最重要的程序——游戏的编写 首先应该创建控件

也就是说要创建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是可见的,可使用的

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 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

Label1.Caption = "已经随机产生了一个数字(0~9)不同的四位数!猜猜是什么数吧!" End Sub

Private Sub Command2_Click() 重新开始游戏的设置 cishu = 0 Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Randomize

Label2.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

Label1.Caption = "已经随机产生了一个数字(0~9)不同的四位数!猜猜是什么数吧!" End Sub

Private Sub Command4_Click() End End Sub

Private Sub Form_Load() 可以使command2和command3点击开始游戏按扭之前是灰色的不可用的 Command2.Enabled = False

Command3.Enabled = False Label1.BackStyle = 0 Label2.BackStyle = 0 End Sub

Private Sub Text1_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 Command3_Click() Text控件中焦点的设置 猜数字真确与否的代码

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

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

Private Sub text4_Click() Text4.Text = "" End Sub

另外需要设置text中数字的大小和输入长度,在font属性栏中设置数字的大小,在maxlength的属性栏中改为1,使在text控件中只能输入一个数字。

做完这些,剩下的就是修饰了, 让这个自己做好的游戏看起来更好看一些,就需要在各个form界面上加载自己喜欢的图片,让界面更丰富一些,不至于太单调,一样的方法,需要在你想添加图片的form控件属性栏中找到picture属性然后加载自己喜欢的图片,需要的话再把不同位置的字体也设置一下,让字体不至于进入图片中找不到

运行结果

进入界面form1

游戏规则

form3

开始游戏界面form2

课程设计体会

实践能够检验是否收获。通过本次课程设计我不仅对课本知识加深了印象和了解,也明白了如何把理论知识运用到现实

中实践,同时也学到了许多有关vb的课外的知识比如在查阅资料过程中我学会了产生随机数的多种方法:一次性随机产生四位数;每次随机产生一个数组合成四位数,可定义动态数组也可定义几个变量去实现。在定义计数变量时把它设为静态变量以及如何使指定的对象什么时候获得焦点等。在完成课程设计过程中锻炼了我分析解决实际问题的能力。开始时并不是很顺利对课本内的知识掌握的不太好,很多知识点被遗忘、不清楚,也暴露出了对vb操作环境的不熟悉,和对一些控件的不熟以及对一些事件属性不了解但通过这次课程设计大半部分出现的问题都得到了解决。设计这款游戏让我更加了解了vb开发环境有用性和前景性更加培养了我对学习visual basic 程序设计的热情和信念。

本文来源:https://www.bwwdw.com/article/17vi.html

Top