打字游戏毕业论文_第1页
打字游戏毕业论文_第2页
打字游戏毕业论文_第3页
打字游戏毕业论文_第4页
打字游戏毕业论文_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、打字游戏设计摘 要:本文的主题是设计打字游戏,是在vb的环境下编程的。在户联网飞速发展的今天,电脑成了每家每户的多需要的平台,打字的速度也是人们所追求的。本文主要设计的是对键盘的熟悉程度,用户可以根据对键盘的认识程度选择相应的级别来完成打字测试。用户完成打字测试,可以进入一个测试结果窗体,这个窗体清楚的显示出用户击中字符的个数和没有击中的数目。用户通过这个窗体可以更好的认识到自己对键盘上的字符还有哪些不熟识的。关键词:打字游戏 ;测试;设计;引言随着科学技术的不断提高,计算机科学日渐成熟,计算机已经深入到工作和生活的各个角落,文字录入是学习计算机非常重要的一部分。在手写录入技术和语音识别技术还

2、不完善的同时大部分人还在使用键盘作为文字录入的工具。所以我编了这个程序,也是我的毕业设计,希望能对电脑处学者和想提高打字速度的朋友有所帮助。1 设计思路 在打字之前,由用户选择所需要的打字级别,该系统设置是通过一组单选按钮来实现的。本系统的关键在于如何实现打字练习。首先,应使字符以随机方式出现在窗体中,并不断下落,其中字符的出现方式与用户的具体设置相关。 本系统中采用了命令按钮来表示不同的随机字符,该数组的每个元素为一个命令按钮,用来显示一个字符。为了使不同的字符多能在窗体的顶端位置出现并下落,可在设计时设置各命令按钮的具体位置多在窗体的顶端。而实现出现字符的随机出现方式,应在命令按钮的cap

3、tion属性中使用随机函数,使之代表不同的字符。字符的自动下落过程由定时器timer1timer6控制命令按钮,下落速度取决于用户设置的练习速度。 用户在不断按键的时候,会引起keypress事件,在该事件中可判断用户的输入是否和当前命令按钮数组中某个元素的caption属性值性质相同,即判断是否击中了出现在窗体中的某个字符。如果击中,则使用move方法把图片image1移动到被击中字符的位置出现子弹击中图标的视觉效果。如果没有击中目标,则所有的字符仍继续下落。用户可以随时按下esc键来结束程序的运行,在此期间你可以查看自己的排行榜。2 方案的初步选定 我做的毕业设计是一个打字游戏,我选择的是

4、在visual basic6.0的环境下编程的。因为我在编程方面还不是很熟练,所以我设计了一个很简单的打字游戏。游戏里面涉及到的是键盘上的操作,及是对键盘的熟悉程度,游戏系统里面主要涉及到的是optionbutton、commandbutton、timer、label、framel、commandialog等一些主要控件的应用。 这个打字游戏的最突出的地方就是当用户按下esc键后,会弹出一个测试结果窗体,这个窗体详细记录了用户打字的情况,窗体分成两个部分分别是测试数据分析和您的测试结果。用户通过这个窗体,可以清楚的知道自己的打字能力,还可以看出在哪些地方还需要改进,让用户一目了然。这个界面在其

5、他的一些打字游戏中还没有出现,我设计这个界面就是想让用户更清楚的看见自己在哪里的不足,对键盘上的哪些键还是比较陌生的,对哪些键盘上的字母、数字及特殊符号在哪个位置比较清楚。3 需求分析3.1 用户需求分析 在当今社会的情景下,电脑的发展不管是在硬件还是软件每天多在不断的更新中,随着时代的脚步,人们在使用电脑过程中对打字的速度的要求也越来越高,在现在的电脑使用者之中,大部分人多在使用金山打字因为里面不管是在功能还是在界面设计中,多是非常好的。所以我也设计了一个打字游戏,虽然不能跟金山打字相比,里面没有那么多的功能,但是这个系统还是有它的可取之处,我相信对刚接触电脑或电脑初学者多是有一定帮助的。

6、3.2确定系统开发环境 由于大多数公司内部使用的计算机平台都是基于windows环境的。为了降低系统成本,应最大程度地利用现有的资源、兼容现有的环境,可确定使用下面的开发环境: 服务器平台:windows2000/2003/xp;客户机平台:windows9598nt2000/xp; 前端开发工具:visualbasic6.0(企业版);visual意为“可视化的”,指的是一种开发图形用户界面的方法,所以visual basic是基于basic的可视化的程序设计语言。在visual basic中,一方面继承了basic所具有的程序设计语言简单易用的特点,另一方面在其编程系统中采用了面向对象、事

7、件驱动的编程机制,用一种巧妙的方法把windows的编程复杂性封装起来,提供了一种所见即所得的可视化程序设计方法。4.系统总体设计4.1 系统的目标与功能设计 系统开发的总体任务是实现打字练习,希望通过这个打字系统能对电脑初学者和想提高打字速度的朋友们有所帮助。 本系统需要完成的功能有以下几点: 1)、一开始进入游戏要先设定名字,以方便进入后面游戏排行榜。 2)、用户对打字难度的级别选择。 3)、用户进入打字主界面,根据用户对速度的选择,窗体上出现相应程度的字母及符号击中时出现子弹击中图标的视觉效果。 4)、查看用户测试的详细报告。 5)、根据测试的成绩进行名次排行。系统的主要目的是实现打字功

8、能,通过用户登入系统进入系统主界面实现打字游戏,然后根据用户的打字速度,系统自动进行排行。打字游戏的工作流程图如图1所示:关于系统消息用户排行榜用户登入初级中级专家级狂人级打字游戏测试结果 图1: 系统工作流程图4.2 打字游戏系统的实现 4.2.1 初始化处理当设置了用户所需要的级别后,进入系统主界面之前,在formload事件中进行初始化处理初始化随机出现的字母。所以变量code、steps(i)应为模块级的变量,需要在通用-声明段进行如下说明:option explicitdim code, steps(i) as integer为image加载图片image控件只能用于显示图片,在代码

9、运行时可借助loadpictuer函数来设置其pictuer属性。loadpictuer函数的使用格式为:loadpicture(filename)其中参数filename指定了图形文件及所在的磁盘和目录;如果该参数为空字符串(“”),则会取消控件中的图片。4.2.2、程序的登入 在一开始游戏时往往多有用户登入这一模块。所以当用户开始使用这个打字游戏时,一开始即进入“请输入你的姓名”对话框。这个对话框的作用是登记进入该游戏的用户的名字以方便于用户在进行打字、结束游戏时可以进入游戏用户排行榜,方便查找用户本身的排名。排行榜界面如图2所示:图2:打字游戏排行榜界面该界面就是通过一开始用户登入这个界

10、面进来的,在通过用户姓名登入进入到打字界面,排行榜是根据用户的打字速度来排行的。该界面分别显示4个排行榜,代码如下:private sub command1_click(index as integer) select case index case 0: frame1.caption = 初级测试排行榜: flag = 1: call level_tip case 1: frame1.caption = 中级测试排行榜: flag = 2: call level_tip case 2: frame1.caption = 专家级测试排行榜: flag = 3: call level_tip c

11、ase 3: frame1.caption = 疯狂级测试排行榜: flag = 4: call level_tip end selectend sub4.3 打字游戏的系统设置 当用户登入时,系统会自动进入“级别选择”这 一个窗体。通过这个“级别选择”窗体,用户可以选择自己所需要的级别来测试。这一个窗体是由一个单选按钮组成的控件数组、两个命令按钮和一个文本框组成的。这组控件数组分别为初级、中级、专家级及狂人级,初级即是为初学者提供的,初级里面涉及到只是一些小写字母,这个级别里的字母多是很简单的,纯粹是一些小写字母,所以当你是刚接触电脑或是电脑初学者或者是对电脑的键盘不熟悉,你多可以选择这个级

12、别来练习;中级是涉及到有关大写和小写的混合,这个级别相当于初级是有一点难度的,因为里面的字母是随机出现的,所以这个级别是有一定难度,但是如果你对键盘有点熟悉的话,其实也是很简单的;专家级的涉及到的是有大写、小写、还有数字字符,这个难度就是很大的,这个级别就是要用户对键盘相当的熟悉,通过这个练习打字对你的速度提高是有很大的帮助的;还有一个就是狂人级的级别,这个级别涉及到的是上面所提到的多有,还涉及到一些特殊字符,这个级别的难度是非常大的,这个要求是用户到键盘的熟悉度是很高的。界面如图3所示:图3:打字游戏级别选择界面该界面很简单的只要通过下面的一段程序就可以了实现了:private sub op

13、tion1_click(index as integer) level_choice = option1(index).caption level = index + 1end sub 在用户进入打字主界面时,界面将出现由用户选择的难度的字母出现在窗体中,并不断下落,当用户击中时,屏幕上将出现子弹击中目标的视觉效果,并修改测试结果窗体上的用于显示成绩的标签的caption属性值,同时重新设置被击中命令按钮上的显示字符,初始化该命令按钮的top属性值,以使命令 按钮从窗体上方重新下落。如果没有击中目标,则所有的字符仍继续下落。为使命令按钮上的字符能随机出现在窗体中,应使用随机函数。首先,通过ra

14、ndomize初始化随机数生成器。由于 用户选择的打字难度和速度不同,用户可能选择初级、中级、专家级及狂人级,因此要根据窗体中的单选按钮的值,自动生成字符。例如,如果用户选择了初级,则窗体中的option1.value的值为true。小写字母的ascll码范围为97122,因此随机字符的ascll码值可以通过语句temp = rnd * 6,依temp的随机值产生相应随机类型的字符。为使字符能够记录丢失的字符数及字符在顶端的初始状态,我对定时器做如下处理:if command1(0).top = 0 then call new_char(0): command1(0).caption = ch

15、r(code) if command1(0).top main.scaleheight - command1(0).height then command1(0).top = command1(0).top + steps(0) else lost_letter = lost_letter + 1 记录丢失的字符数 command1(0).top = 0 挨到了底边就将其置于初使状态(顶部) end ifend sub通过对6个定时器的处理,字符会自动下落,在没有被击中的字符自动被记录到测试结果界面中。用户可以随时按下esc键结束程序的运行,程序可以通过语句elseif keyascii =

16、27 then timer1.enabled = false timer2.enabled = false timer3.enabled = false timer4.enabled = false timer5.enabled = false timer6.enabled = false判断用户是否按下esc键如果按下,4秒钟后系统会自动转到测试结果窗体,用户在该窗体中查看用户自己的击中字符及数字字符或是特殊符号的个数,在该窗体中,用户可以看出自己在这个级别测试时的速度、时间、击中率和击键次数。下面是测试结果窗体的界面如图4所示:图4:打字游戏测试结果界面 在测试结果窗体中,用户可以在文件这

17、个目录中打开用户排行榜,这个排行榜也是分为初级排行榜、中级排行榜、专家级排行榜及狂人级排行榜。因为在打字的过程中用户有可能没有按键或者是打字的时间为0,所以在程序中应加进以下代码:if right_letter = 0 then label4(5).caption = 0 & % else hit_rate = val(right_letter) / (total_keypress - 1) * 100 label4(5).caption = format(hit_rate, #0.00 ) & % end if label4(6).caption = total_keypress - 1 i

18、f user_time = 0 then label4(7).caption = 0 & space(1) & char/s else speed = val(right_letter) / user_time * 2 label4(7).caption = format(speed, 0.00 ) & char/s待添加的隐藏文字内容1 end if4.4 对用户按键和击中字符的处理(1)、当用户按下键盘上的按键时,有以下3中情况发生:1)击中了窗体中的字符时,总成绩提高,显示击中视觉效果,重新设置该按钮的位置和显示字符。2) 没有击中窗体中的字符时,不做任何处理。3) 按下esc键时,结束

19、程序。对上述3中情形,都是在按下按键时进行相应的处理,即在form的keypress事件中加以处理。(2)、在vb设计语言中,keypress事件中的参数keyascill的值返回用户所按字母的ascii码值。根据该值,通过chr函数可以得到用户单击的字符,用这个字符逐个跟命令按钮的caption属性值进行比较,判断是否击中了其中的某个字符,代码如下所示: for i = 0 to command1.count 1 if commanda.item (i) .caption = chr(keyascii) then end if next如果击中了某字符,应在该字符所在位置显示被击中的视觉效果。采用移动image1控件的方式,将它移动到被击中字符的位置,并使该控件中的图片可见: image1.visible = true image1.top = command1.item(m).

温馨提示

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

评论

0/150

提交评论