VB课程设计 打字游戏_第1页
VB课程设计 打字游戏_第2页
VB课程设计 打字游戏_第3页
VB课程设计 打字游戏_第4页
VB课程设计 打字游戏_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、内容摘要本有游戏主要针对指法练习,并提供字母和单词两种选择。根据用户自身情况,可以进行速度调节,以达到最佳的练习效果。同时本游戏提供显示时间,得分,正确率和失败个数的功能。当失败个数超过一定个数后,游戏结束并提示是否继续。 目录 TOC o 1-3 h z u HYPERLINK l _Toc260310458 内容摘要 PAGEREF _Toc260310458 h 1 HYPERLINK l _Toc260310459 1功能描述 PAGEREF _Toc260310459 h 3 HYPERLINK l _Toc260310460 简单模式 PAGEREF _Toc260310460 h

2、 3 HYPERLINK l _Toc260310461 复杂模式 PAGEREF _Toc260310461 h 3 HYPERLINK l _Toc260310462 2概要设计 PAGEREF _Toc260310462 h 4 HYPERLINK l _Toc260310463 3详细设计 PAGEREF _Toc260310463 h 5 HYPERLINK l _Toc260310464 窗体控件设计 PAGEREF _Toc260310464 h 5 HYPERLINK l _Toc260310465 各模块功能 PAGEREF _Toc260310465 h 6 HYPERLI

3、NK l _Toc260310466 随机产生字母和选取单词函数 PAGEREF _Toc260310466 h 6 HYPERLINK l _Toc260310467 窗体 PAGEREF _Toc260310467 h 6 HYPERLINK l _Toc260310468 开始按钮 PAGEREF _Toc260310468 h 7 HYPERLINK l _Toc260310469 暂停按钮 PAGEREF _Toc260310469 h 8 HYPERLINK l _Toc260310470 退出按钮 PAGEREF _Toc260310470 h 8 HYPERLINK l _To

4、c260310471 键盘事件 PAGEREF _Toc260310471 h 8 HYPERLINK l _Toc260310472 计时器1 PAGEREF _Toc260310472 h 9 HYPERLINK l _Toc260310473 计时器2 PAGEREF _Toc260310473 h 10 HYPERLINK l _Toc260310474 程序调试及运行结果 PAGEREF _Toc260310474 h 11 HYPERLINK l _Toc260310475 效果及存在的问题 PAGEREF _Toc260310475 h 13 HYPERLINK l _Toc26

5、0310476 4心得体会 PAGEREF _Toc260310476 h 14 HYPERLINK l _Toc260310477 参考文献 PAGEREF _Toc260310477 h 151功能描述图1 游戏开始界本模式提供字母练习。当用户运行游戏,选择简单模式后,点击开始按钮开始练习,并开始计时。游戏开始后,随机掉下一些字母,敲击对应键盘,字母消失。如果字母掉落到底部,则掉落个数增加1个。当掉落个数为26时,游戏结束,并提示用户是否继续。游戏过程中按“暂停”按钮暂停有游戏,按“退出”按钮退出游戏。复杂模式本模式提供单词练习。当用户运行游戏,选择复杂模式后,点击开始按钮开始练习,并开始

6、计时。游戏开始后,随机掉下一些单词,输入对应单词(如果输错,敲空格清除),并敲空格键,单词消失。如果单词掉落到底部,则掉落个数增加1个。当掉落个数为26时,游戏结束,并提示用户是否继续。游戏过程中按“暂停”按钮暂停有游戏,按“退出”按钮退出游戏。2概要设计 简单模式调节速度开始字母练习已错过26个,是否继续?是否重新开始游戏游戏开始游戏开始界面运行程序复杂模式开始开始开始单词练习调节速度是否重新开始游戏游戏开始游戏流程图游戏过程中可以按“暂停”按钮暂停有游戏,并且停止计时。按“退出”按钮退出游戏3详细设计控件设计图3.1 窗体界面部分窗体控件及其属性对象属性属性值Form1Caption打字游

7、戏KeyPreviewTrueHScroll1Max160Min40Value100表3.1 控件及属性值各模块功能随机产生字母和选取单词函数Private Function suiji() 随机产生字母和随机选取单词函数Dim a As IntegerDim b As StringRandomizeword = Array(sway, sneak, naked, maple, ample, lough, plasma, tude, plague, pledge, play, prowl, pluckbandit, gangster, commemorate, solar, elipse, l

8、una, lunatic, tumble, mortal, moral, fade, flinch, spout, sprout, spurn, spoil, sparrow, sprain, plasma, mare, malady, glisten, bereave, glimme, rslim, crave, amiable, able, blizzard, lizard, bruise, bromide, place, bale) 存放供练习的单词b = Int(Rnd * (UBound(word) + 1) 产生单词序号a = Int(122 - 97 + 1) * Rnd + 9

9、7) 产生97到122之间的整数If Option1.Value Then suiji = Chr(a) 如果选择简单单选框,则函数的返回值为小写字母Else suiji = word(b) 如果选择复杂单选框,则函数的返回值为单词End IfEnd Function窗体Private Sub Form_Load()Text1.Top = -1000Label6.Caption = 正确率:0Label4.Caption = 时间 00:00:00Timer2.Enabled = FalseTimer1.Enabled = FalseLabel2.BackStyle = 0Label3.Bac

10、kStyle = 0Label4.BackStyle = 0Label5.BackStyle = 0Label6.BackStyle = 0 将标签2到6的背景设为透明For i = 0 To Label1.Count - 1 Label1(i).Visible = False 将标签Label1(1)到Label1(5)的初始状态设为不可见 Label1(i).Top = 600 * (i + 1) 设置字母或单词的的位置 Label1(i).Caption = suiji 最初出现的字母或者单词 Label1(i).FontSize = 25 设置字体大小 Label1(i).AutoSi

11、ze = True 标签大小自动可调 Label1(i).BackStyle = 0 透明Next Label3.Caption = 掉落个数: & n Label5.Caption = 当前得分: & h Label2.ForeColor = RGB(0, 255, 0) Label5.ForeColor = RGB(0, 255, 0) Label3.ForeColor = RGB(0, 255, 0) Label6.ForeColor = RGB(255, 0, 0) Label4.ForeColor = RGB(255, 0, 255) 设置字体颜色End Sub开始按钮Public

12、Sub Command1_Click() 开始按钮Dim i%If Option2.Value Then i = MsgBox(输入单词后,请按空格键确认, , 注意) 操作提示End If For i = 0 To Label1.Count - 1 Label1(i).Visible = True Label1(i).Caption = suiji Label1(i).ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255) 随机产生字母,单词,颜色随机Next Timer1.Enabled = True Timer2.Enabled = True H

13、Scroll1.Enabled = False Option1.Enabled = False Option2.Enabled = False Command1.Enabled = False 将计时器,速度调节,难度选择和开始按钮禁用 Text1.SetFocus 将焦点转移到文本框End Sub暂停按钮Private Sub Command2_Click() 暂停按钮Timer1.Enabled = FalseTimer2.Enabled = FalseEnd Sub退出按钮Private Sub Command3_Click() 退出按钮If MsgBox(确定要退出?, vbYesNo

14、) = vbYes Then MsgBox 得分 & h & 分, , 成绩 退出提示 Unload Me 关闭窗体End IfEnd Sub键盘事件Private Sub Form_KeyPress(KeyAscii As Integer)Dim b As IntegerDim c As IntegerIf KeyAscii = 97 And KeyAscii b Then 判断字母是否已经落出 c = i End If End If NextElse If KeyAscii = 32 Then 如果敲了空格,则进行单词比较操作 For i = 0 To Label1.Count - 1 遍

15、历所有产生字母 If Label1(i).Caption = ci Then 判断产生的单词和输入的单词是否相等 If Label1(i).Top b Then 判断字母是否已经落出 c = i End If End If Nextci = End If End IfIf c -1 ThenLabel1(c).Top = -10 如果输入正确,则将字母标签隐藏到顶部Label1(c).Caption = suiji 字母标签随机产生字母h = h + 1 如果输入正确,则得分加1Label5.Caption = 当前得分: & h 显示当前得分End IfEnd Sub计时器1Private

16、Sub Timer1_Timer()For i = 0 To Label1.Count - 1 Label1(i).Top = Label1(i).Top + HScroll1.Value 控制字母,单词移动,以及移动速度 If Label1(i).Top Form1.Height Then n = n + 1 记录掉落个数 Label3.Caption = 掉落个数: & n Label1(i).Top = -10 Randomize Label1(i).ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255) 产生颜色 End If If n = 2

17、6 Then If MsgBox(已经错过 & n & 个,重新开始?, vbYesNo) = vbYes Then 提示框 Form_Load Else Form_Load 控制重新游戏还是结束游戏 End If End IfNextEnd Sub计时器2Private Sub Timer2_Timer()Timer2.Interval = 1000If (n + h) 0 Then Label6.Caption = 正确率: & h / (n + h) * 100 1 & % 显示正确率End IfStatic s s = s + 1Dim miao As StringDim fen As

18、 StringDim shi As StringIf s Mod 60 10 Then miao = 0Else miao = End IfIf (s Mod 3600) 60 10 Then fen = 0Else fen = End IfIf s 3600 10 Then shi = 0Else shi = End If Label4.Caption = 时间 & shi & s 3600 & : & fen & (s Mod 3600) 60 & : & miao & s Mod 60 显示已用时间End Sub调试及运行结果(1)选择复杂模式,按开始按钮1 输入提示界面(2)按退出按钮,退出提示,提示得分2 退出界面3退出界面(3)当错过26个时,出现提示4 游戏结束界面效果及存在的问题经过一周的努力,基本达到了预期效果,比如说字母练习,单词练习,速

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论