打字练习游戏程序
- 格式:doc
- 大小:326.50 KB
- 文档页数:32
提供全套毕业设计,欢迎咨询汇编语言课程设计报告程序题目:打字练习程序学生姓名:XX班级:2010级计算机科学与技术专业4班学号:XXX院系:计算机科学学院指导教师:XXX—I—目录1设计目的 (3)2概要设计 (3)2.1 系统总体分析 (3)2.2主模块框图及说明 (4)3 详细设计 (5)3.1 主模块及子模块说明 (5)3.2 各模块详细设计 (5)3.2.1主界面模块 (5)3.2.2随机字母产生模块 (7)3.2.3字母落下模块 (9)3.2.4暂停模块 (10)4.程序调试 (11)4.1运行界面分析 (11)4.2调试过程及分析 (13)5心得体会 (13)5.1 设计体会 (13)5.2 系统改进 (13)参考文献 (14)附:程序源代码 (14)陕西师范大学汇编语言课程设计实验报告1设计目的本程序运行后,出现主界面,按回车键出现由26个字母组成的乱序行,这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失;按回车键进入打字练习;按ESC键返回主界面;按空格键暂停;按‘E’退出。
通过课程设计,主要达到以下目的:1. 增进对汇编语言的认识,加强用汇编语言编程的能力;2. 掌握汇编语言的中断调用功能的应用,可以用汇编语言调用各种中断调用功能,并由此实现对硬件的控制等;3. 了解和掌握汇编语言程序设计过程、方法及实现,为以后微机原理课程的学习打下良好基础;4. 通过课程设计可以使我们更加了解书上的知识,了解书上的语句并且能够应用自己的程序中;5. 掌握屏幕输出显示的设计方法。
2概要设计2.1 系统总体分析根据题目要求可以看到有以下几部分来实现打字练习:1.由26字母乱序组成一行显示行。
2.字母自动落下。
3.从键盘输入的字母与落下字母相同则该字母消失,并且下一个字母自动接着落下。
4.按下“Ese”键则程序返回到主界面。
5.按空格键游戏暂停。
6.在主界面按“E”则程序退出。
打字练习的主要功能由以上六部分组成,每一部分之间的联系都是比较紧密的。
1 设计目的这次课设的任务是随机显示一段字符(可含有字母和数字),根据屏幕显示进行打字练习,出错时声响报警,打字完成后统计正确率和打字时间。
通过课程设计,主要达到以下目的:1. 增进对汇编语言的认识,加强用汇编语言编程的能力;2. 掌握汇编语言的中断调用功能的应用,可以用汇编语言调用各种中断调用功能,并由此实现对硬件的控制等;3. 了解和掌握汇编语言程序设计过程、方法及实现,为以后微机原理课程的学习打下良好基础;4. 通过课程设计可以使我们更加了解书上的知识,了解书上的语句并且能够应用自己的程序中;5. 掌握屏幕输出显示的设计方法;6.掌握产生随机数的方法2 理论知识介绍2.1 DOS中断与BIOS中断及功能调用目前DOS常用的9类中断(20H-27H和2FH)分为两种:DOS专用中断和DOS 可调用中断。
(1)DOS专用中断。
DOS专用中断是指INT22H、INT23H和INT24H三个中断,属于DOS操作时专用,用户不要直接使用。
(2)DOS可调用中断。
DOS可调用中断是指INT20H、INT21H、INT25H、INT26H、INT27H和INT2FH六个中断。
这六个中断都直接供用户直接调用,但都必须要满足一定的入口条件。
由于中断有很多中,本身就比较复杂,所以在这里只是简单的提一下,不做深入研究。
只对其中的INT10和INT21两种特别常见且应用广泛的在程序设计过程中结合程序加以说明。
2.2 宏指令及其应用宏指令是源程序中具有独立功能的一段程序代码,它可以根据用户的要求,由用户自己在源程序中定义。
宏指令一经定义,便可以在以后的程序中多次调用。
宏定义有MASM宏汇编程序提供的伪指令实现。
其格式为:宏指令名 MACRO <形式参数>... ...... ...ENDM其中,MACRO和ENDM均为伪指令,它们必须成对的出现在源程序中。
且必须以MACRO作为宏定义的开头,而以ENDM作为宏定义的结尾。
简单打字游戏编程字数:1500字随着计算机技术的迅速发展,各种各样的游戏应运而生,其中打字游戏是一类经典且受欢迎的游戏类型。
在这篇文章中,我将介绍一个简单的打字游戏的编程实现,带领读者一起学习如何利用编程语言来开发一个简易的打字游戏。
在开始之前,我们首先需要确定使用的编程语言。
在本篇文章中,我将使用Python语言来进行游戏的开发。
Python是一种易于学习和使用的编程语言,非常适合初学者。
编写打字游戏的代码之前,请确保你已经安装了Python,并且具备基本的编程知识。
首先,我们需要为游戏设计一个基本的界面。
在这个游戏中,我们将在屏幕上显示一个随机的英文单词,并要求玩家尽快输入正确的单词。
为了实现这个功能,我们需要使用Python的一个叫做`random`的模块来生成随机单词。
下面是一个简单的代码示例:```pythonimport randomdef generate_word():words = ['apple', 'banana', 'cat', 'dog', 'elephant'] # 可以根据需要扩展单词列表return random.choice(words)if __name__ == '__main__':word = generate_word()print(word)```在上面的代码中,`generate_word`函数用于生成一个随机的单词。
我们事先定义了一个单词列表`words`,其中包含了一些常见的英文单词。
然后,使用`random.choice`函数从这个列表中随机选择一个单词,并将其返回。
在主程序部分,我们调用`generate_word`函数并打印生成的单词。
接下来,我们需要实现游戏的主循环。
在游戏开始后,程序会不断生成新的单词,并等待玩家输入。
玩家需要尽快输入正确的单词,否则游戏将结束。
C#简单打字练习程序CH10 using System;using System.Drawing;using System.Collections;using ponentModel;using System.Windows.Forms;using System.Threading;namespace MoveChar{/// <summary>/// frmMoveChar 的摘要说明。
/// </summary>public class frmMoveChar : System.Windows.Forms.Form{private System.Windows.Forms.Button bntStart;private System.Windows.Forms.Button bntExit;private System.Windows.Forms.Timer timerStart;private bel lblChar;private System.Windows.Forms.Panel pnlContainer;private ponentModel.IContainer components;public frmMoveChar(){//// Windows 窗体设计器⽀持所必需的//InitializeComponent();//// TODO: 在 InitializeComponent 调⽤后添加任何构造函数代码//}/// <summary>/// 清理所有正在使⽤的资源。
/// </summary>protected override void Dispose( bool disposing ){if( disposing ){if(components != null){components.Dispose();}}base.Dispose( disposing );}#region Windows 窗体设计器⽣成的代码/// <summary>/// 设计器⽀持所需的⽅法 - 不要使⽤代码编辑器修改/// 此⽅法的内容。
打字趣味活动方案1. 活动背景如今,计算机技术得到了广泛应用,键盘操作已经成为人们日常生活中不可或缺的一部分。
然而,很多人在使用键盘时仍然显得生涩不熟练。
为了提高大众的键盘操作技能,提高工作和学习效率,我们计划举行一场打字趣味活动。
2. 活动目标•提高参与者的键盘操作速度和准确性;•增加参与者对键盘中各个按键的熟悉度;•增加参与者对常用单词和短语的记忆力。
3. 活动内容3.1 打字比赛我们将组织一场打字比赛,比赛分为初级、中级和高级三个组别。
比赛过程中,参与者需要按照指定的文章内容,尽快、准确地输入文章,并确保没有打字错误。
在比赛结束后,将根据比赛时间和准确性评选出优胜者,并颁发奖品。
3.2 打字练习除了比赛,我们还将安排打字练习环节。
参与者将在规定的时间内,进行打字练习以提高他们的打字速度和准确性。
练习内容将包括常用单词、短语和文章。
同时,我们将提供练习反馈和建议,帮助参与者改善打字技能。
3.3 打字游戏为了让参与者在活动中更好地放松身心,我们还将设计一些打字游戏。
这些游戏将结合键盘操作和娱乐元素,使参与者在娱乐中提高打字技能。
游戏内容将包括打字接龙、打字音乐游戏等。
4. 活动时间和地点活动将于xx年xx月xx日在xx地点举行。
比赛和练习将分为若干轮进行,每轮时间约为30分钟。
打字游戏将在活动间隙进行。
5. 参与条件和要求•参与者需要具备一定的键盘操作基础,能够熟练使用标准的QWERTY键盘布局;•参与者需要自备带有中文输入法的电脑,并安装相应的打字练习软件;•参与者需要在指定的时间内参与活动,并按时到达活动地点。
6. 活动宣传和报名我们将通过社交媒体、学校、公司等途径进行活动宣传。
参与者可以通过在线报名表格报名参加活动,并在活动开始前确认参与的组别。
7. 活动后续计划为了更好地持续提高大众的键盘操作技能,我们计划在活动后继续组织打字培训班和社群活动,为参与者提供更多的学习资源和交流机会。
同时,我们也将参与者的反馈和建议纳入活动改进的考虑。
键盘指法练习小游戏键盘指法练习是提高打字速度和准确性的重要方法之一。
通过反复练习,我们可以提高手指的灵活性和记忆键位的能力。
为了让练习变得更加有趣和有挑战性,开发了一款键盘指法练习小游戏。
本文将介绍这款小游戏的特点、玩法和如何开始游戏。
游戏特点1.多种难度选择:游戏提供了多种难度选择,包括初级、中级和高级。
不同难度对应不同的练习内容和速度要求。
2.定制练习内容:游戏支持自定义练习内容。
玩家可以根据自己的需要选择练习字母、单词或短语。
3.实时统计和分数排名:游戏会实时统计玩家的击键速度和准确率,并给予相应的分数。
玩家可以与其他玩家的分数进行比较排名,增加竞争和激励。
4.界面简洁友好:游戏界面简洁明了,操作简单方便。
玩家可以直观地了解自己的练习状态和成绩。
游戏玩法1.选择难度和练习内容:进入游戏后,玩家需要选择练习难度和练习内容。
根据自己的水平和需求进行选择。
2.进入练习模式:选择完难度和练习内容后,游戏会进入练习模式。
在屏幕上会显示出一系列需要按下的键位,玩家需要尽快准确地按下相应的按键。
击键的速度和准确率会实时显示在屏幕上。
3.结束练习:练习时间到达限制或玩家选择结束时,游戏会停止练习并显示最终的分数和排名。
玩家可以选择重新开始或退出游戏。
如何开始游戏1.安装游戏:首先,需要下载并安装游戏应用程序。
游戏适用于多种操作系统,如Windows、macOS和Linux。
2.打开游戏:安装完成后,双击游戏图标或在应用程序菜单中找到游戏并打开它。
3.选择难度和练习内容:在游戏界面上,选择适合自己的难度和练习内容。
例如,选择中级难度和练习字母。
4.开始练习:点击“开始练习”按钮开始游戏。
根据提示,在规定时间内尽量按下所有正确的按键。
5.结束游戏:练习时间到达限制或自己决定结束时,点击“结束游戏”按钮。
游戏将显示你的最终分数和排名。
游戏帮助和建议1.多练多熟练:键盘指法需要持续的练习才能得到提高,建议玩家每天坚持一段时间的练习。
一、课程设计题目:趣味打字游戏二、功能描述:新游戏菜单:让结束或运行中的游戏重新开始。
开始菜单:打字游戏开始,背景音乐响起。
暂停菜单:运行中的游戏暂停,音乐停止。
继续菜单:使暂停的游戏继续,音乐随之响起。
退出菜单:结束游戏。
进程:每没打中一个字母,滚动条前进一格。
倒计时:计算剩下的时间。
时间:计算游戏开始所用的时间。
得分:每没打中一个字母,得分加1分。
在规定时间内,打字数量达到下一级别,得分归0,重新累加。
失误:若键盘没有击中屏幕上的任何一个字母,并且消失了,则失误累加。
当失误累计达到10分时,屏幕上出现“很遗憾,你没有过关!继续?请点击“开始”按钮”。
总分:每打一个字母,得分累加。
级别:在规定时间内,打字数量达到下一级别的要求,级别累加。
开始按钮:打字游戏开始,背景音乐响起。
暂停按钮:运行中的游戏暂停,音乐停止。
继续按钮:使暂停的游戏继续,音乐随之响起。
退出按钮:结束游戏。
三、概要设计:游戏开始,屏幕上出现四个字母,并且音乐响起。
此时,“开始”和“继续”菜单、“开始”和“继续”按钮不再可用,“暂停”菜单和“菜单”按钮可用。
按“暂停”游戏中止,此时,暂停不可用,按“新游戏”和“继续”游戏开始。
“帮助”菜单包括游戏说明和关于版权说明。
点击游戏说明,出现另一个界面,介绍游戏介绍和游戏规则。
点击版权说明,按“确定”按钮后界面消失。
四、详细设计:游戏界面有菜单栏,此菜单栏包含有游戏和帮助两个菜单。
点击游戏弹出下拉式菜单,包括新游戏、开始、暂停、继续和退出。
按新游戏菜单后,运行中的游戏重新开始。
点击开始菜单或开始按钮后,游戏开始,背景音乐开始响起。
此时“开始”和“继续”不可用,“暂停”可用,“倒计时”和“时间”开始计时,同时屏幕上方随机的产生四个字母,并随时间的增加下落。
当用键盘击中某个字母时,发出“嘟”的一声。
得分和总分各自累加。
此后字母消失,屏幕上方又出现一个新的字母。
若没有击中任何一个字母,在屏幕下方字母消失,失误累加,得分和总分不受影响。
汇编语言课程设计报告( 2014 —- 2015 年度第1 学期)课题名称:打字计时练习程序专业xxx学生姓名xxxx班级xxx学号xxxx指导教师xxx完成日期xxxxx目录1.设计目的与设计要求2。
程序流程图 (5)2。
1主程序流程图 (5)2。
2时间计算流程图 (6)2。
3正确率计算流程图 (7)3.设计关键问题 (9)3。
1输入输出 (9)3.1.1 输出显示信息 (9)3。
1。
2 输入十个字符 (11)3.2 输入字符串所用时间计算 (11)3.3 正确率判断 (13)4.调试运行结果分析 (14)参考文献 (19)附录二打字计时练习程序 (19)一。
设计目的本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题,解决问题的综合应用能力.设计要求在缓冲区预放了一些字母,运行时,可按照屏幕上显示的字母输入练习, 每输入完一行按回车键后,可显示出练习输入的时间。
设计思路1.系统总体分析在缓存区预放了一些字母,运行时可按照屏幕上显示的字母输入练习,每输入完一行按回车键后,可显示出练习输入的时间.当一个句子分析完后(回车键作为结束符),屏幕上以min:sec:msec的格式显示出键入字符的时间。
在每次打字之前,屏幕上先显示一个例句,然后打字员按照例句,将句中字符通过键盘输入。
这个过程共进行五次,当键入一个enter键时,推出打字计时练习程序.在键盘上联系的打字例句及其他地址表,计时单位等预存在DATA数据段中。
自编的中断程序Kbint检测按键时产生的中断,并将按键扫描码转换为ASCII码存入缓存区BUFFER(内存中一个区域),这个工作和EOM09类型的键盘中断例行程序所完成的工作大致相同,只是在解释各个键时作了简化,即只解释了可显示字符(如英文小写字母,数字及一些字符),其他特殊键(如组合键,双态键,功能键),都未做解释,只做字符码0来处理。
26键拼音打字训练游戏
一、键盘26键打字口诀:
1、七(Q)碗(W)鹅(E)肉(R)汤(T),已(Y)无(W)一(Y)我(W)婆(P);爱(A)死(S)豆(D)腐(F)羹(G),回(H)家(J)快(K)乐(L);自(Z)行(X)车(C)未(V)帮(B)你(N)买(M)。
2、根据口诀故事联想记忆法:七碗鹅肉汤,已经无一碗给我的老婆
了(全给我喝了)。
老婆却说:“我爱上喝豆腐羹了。
你回家我就快乐。
”过了一会儿,老婆说:“对不起,你要的自行车,我未帮你买”。
二、提高打字速度的方法:
1、注意自己打字的姿势:第一步要做到背挺直,眼睛离键盘大约半
米左右(这是为了让整个键盘都在视野里),双手食指自然地放在“F”
和“J”键上。
2、熟悉键盘的键位:注意打字时不要只用一个手指去打,一定要让
每个手指都有分工。
3、手指的正确位置:注意手指的正确位置。
你可以利用“键盘图”,背面有“手指位置图。
4、不看键盘打字:把字母的位置印在脑海里。
在“F”和“J”键上
有一个小杠,利用这个来记住键位。
5、善于利用快捷方式:在打字中shift+ctrl是转换输入法,ctrl+
空格是切换中英文输入法,ctrl+Alt+Del是结束任务。
6、在打字时眼睛只看屏幕而不要看键盘。
必须要学会盲打,虽然一开始会很慢。
但一段时间后,记住每个字母在键盘上的位置会很快。
练习手指的指法使之熟练。
如果你看一下键盘,你的手指也能熟练地打字。
打字练习游戏在这个数字化的时代,我们的生活几乎离不开键盘输入。
而要提高我们的打字速度和准确率,打字练习游戏成为了一种受欢迎的方法。
打字练习游戏不仅可以帮助我们提高键盘输入技能,还能让我们在轻松愉快的氛围中不知不觉地提升自己。
接下来,我们将介绍几款有趣的打字练习游戏,希望能够帮助大家提高打字水平。
键盘快打键盘快打是一款经典的打字练习游戏,通过不断跟随游戏给出的文字进行输入,来提高打字速度和准确率。
在游戏中,玩家需要迅速地将屏幕上显示的文字准确地输入到键盘上,随着游戏的进行,文字的难度和输入速度也会逐渐增加,挑战玩家的极限。
打字大师打字大师是一款结合了打字练习和游戏竞技的应用。
在这款应用中,玩家可以与其他玩家进行实时打字比赛,看谁能够更快速地准确输入文字。
同时,打字大师还提供了各种各样的关卡和挑战,让玩家在不断挑战中提高自己的打字技能。
打字悦乐打字悦乐是一款专门设计给初学者的打字练习游戏。
在这款游戏中,玩家可以通过各种有趣的小游戏和挑战来提高自己的打字速度和准确率,同时还可以学到一些关于键盘布局和打字技巧的知识。
打字悦乐的画面清新简洁,操作简单易上手,非常适合初学者入门。
打字助手打字助手是一款专注于提高打字准确率的应用。
在这款应用中,玩家可以通过各种不同类型的打字练习来提高自己的打字技能,还可以查看自己的打字速度和准确率的统计数据,及时发现并改正打字中的错误。
打字助手还提供了一些实用的工具和功能,帮助玩家更好地提升自己的打字水平。
综上所述,打字练习游戏是一种有趣又有效的提高打字技能的方法。
通过不断地练习和挑战,我们可以快速提升自己的打字速度和准确率,为日常工作和生活带来便利。
希望大家能够尝试以上介绍的打字练习游戏,找到一款适合自己的方式,努力提高自己的打字水平!。
打字游戏教案及反思教案标题:打字游戏教案及反思教案目标:1. 帮助学生掌握基本的打字技能,包括正确的手指位置、按键方法和速度控制。
2. 提高学生的打字准确性和速度。
3. 培养学生对打字的兴趣和积极性。
教学资源:1. 打字游戏软件或在线打字游戏网站。
2. 打字键盘。
3. 计算机或笔记本电脑。
教学步骤:引入活动:1. 向学生介绍打字游戏的重要性和好处,如提高工作效率、减少错误率等。
2. 与学生讨论他们对打字游戏的了解和经验。
主体活动:步骤1:讲解基本打字知识1. 向学生展示正确的手指位置和按键方法。
2. 解释键盘上各个键的功能和位置。
3. 演示如何使用正确的手指位置进行打字。
步骤2:练习打字技能1. 学生跟随教师一起练习打字,重点放在正确的手指位置和按键方法上。
2. 教师提供一些简单的打字练习,如打印字母表、常用单词等。
步骤3:进行打字游戏1. 学生使用打字游戏软件或在线打字游戏网站进行练习。
2. 学生可以选择适合自己水平的游戏难度,并逐渐提高挑战。
步骤4:评估学生的打字技能1. 设计一些评估练习,包括打字速度和准确性的测试。
2. 为学生提供反馈和建议,帮助他们改进打字技能。
总结活动:1. 与学生讨论他们在打字游戏中的体验和收获。
2. 强调持续练习的重要性,并鼓励学生在日常生活中多加练习打字技能。
教案反思:1. 教师应提前测试打字游戏软件或在线网站的可用性和适应性。
2. 教师应根据学生的实际水平和需求,选择合适的打字游戏和练习内容。
3. 教师应鼓励学生积极参与,提供正面的激励和反馈,以增强学生的学习动力。
4. 教师应关注学生的进展,并根据需要进行个别辅导和指导。
通过本教案的实施,学生将能够逐步掌握基本的打字技能,并在打字游戏中提高准确性和速度。
同时,他们也会培养对打字的兴趣和积极性,为今后的学习和工作打下坚实的基础。
东仁堡小学高效课堂信息导学案(A版)
课题:《打字游戏》课时:一课时【课堂导学】
一、学习目标
1、知识目标:让学生进一步熟练字母键的指法。
2、技能目标:通过打字软件实行打字练习
3、情感目标:激发学生学习打字的兴趣。
4、根据本课时教学内容和学生的认知规律,我确定教学重点是熟练掌握字母键的指法,难点就掌握能提升速度的指法技巧。
二、知识链接:
三、导学过程:
四、板书设计:
1、击键时必须按照标准指法实行操作。
2、要心手合一,不要分心。
3、必须保证没有错误。
【课后反思】:
通过前段时间的课堂练习,学生对于指法已经有了一个基本的理解,在课堂上练习时也能按照指法来输入文字,但有部分同学不能坚持,打了一会就发生指法的变形,有的学生指法不对发生了移位,有的学生又恢复原来的一指神功。
在游戏中,学生的兴趣很高,但有点手忙脚乱。
用C和SFML编程实现打字小游戏打字小游戏是一种能够提高打字速度和准确性的娱乐方式。
本文将介绍如何使用C语言和SFML库编程实现一个简单的打字小游戏,并提供一份基本的代码框架供参考。
1. 准备工作在正式开始编程之前,需要确保你已经安装了C语言的开发环境和SFML库。
如果没有安装,可以自行搜索并按照官方指引进行安装。
2. 创建窗口使用SFML库中的函数,我们可以轻松地创建一个窗口来运行我们的小游戏。
以下是一个简单的代码示例:```c#include <SFML/Graphics.h>int main() {sfRenderWindow* window;sfVideoMode mode = {800, 600, 32};sfEvent event;window = sfRenderWindow_create(mode, "Typing Game", sfDefaultStyle, NULL);sfRenderWindow_setFramerateLimit(window, 60);while (sfRenderWindow_isOpen(window)) {while (sfRenderWindow_pollEvent(window, &event)) {if (event.type == sfEvtClosed)sfRenderWindow_close(window);}sfRenderWindow_clear(window, sfBlack);// 在这里添加游戏逻辑sfRenderWindow_display(window);}sfRenderWindow_destroy(window);return 0;}```上述代码创建了一个800x600的窗口,并在每秒钟刷新60次。
其中的`// 在这里添加游戏逻辑`注释表示我们可以在此处编写游戏逻辑。
3. 绘制文本为了显示打字游戏中的文本,我们首先需要创建一个文本对象,并设置其字体、大小和位置。
汇编语言课程设计设计题目: 指法练习班级: 计算机04-4班学号: 20042390作者: 王丰指导老师: 郑利平日期: 2007.1.5汇编语言课程设计报告-----<打字游戏>一、课程设计目的课程设计使学生更进一步理解和掌握汇编语言知识、程序设计的方法和技巧,使学生能够使用汇编语言分析、设计中小型程序的能力。
通过课程设计,有助于学生更好的了解整个课程的知识体系,锻炼学生运用本课程的知识解决更复杂的实际问题的能力,从而为后续课程的学习、毕业设计以及将来的实际工作打好坚实的基础。
二、设计题目指法练习三、设计要求1、从屏幕上方以一定的时间间隔随机落下可显示字符,字符的出现位置亦是随机的;2、在多个字符下落的过程中可输入任意键,若键入与其中的任意一个字符相匹配的键,则该字符高亮显示并发出蜂鸣声,同时计分;3、按ESC键结束练习并显示命中率;4、再次按ESC键退出。
四、设计环境硬件:PC机,软件: masm5.0五、设计分析指法练习,是在屏幕上以一定的时间间隔随机的下落一写字符,我在程序中的设计方法是从屏幕的第一行开始显示一个字符,然后在用一个时间延时函数延时一段时间,再在此位置显示空格字符,延时后在同一列的下一行显示原字符,如此循环,中间如果有输入正确的字符,则,循环停止, 并同时将此字符高亮显示,方法是改变此字符的属性,并将score加1,然后光标移到第一行还是新的循环.若输入中间字符不正确,循环到21行时,则扬声器发出蜂鸣声,同时life减1.设计中要求每次下落的字符是随机的,我在程序中的设计方法是取系统时间1/100秒,然后将此时间模取26,将得到余数加上61,将此作为输出字符的ASCLL码,如此循环78次,将这些字符存入letter缓冲区,并在屏幕最上方显示出来.开始下落的字母的位置也是随机的,同样取系统时间,,由于一行最多只能有78个字符,所以当取的时间大于等于78时,应减去78,将得到的结果作为取字符的位置,此种随机虽然不是很严谨,但用在此程序中还是很不错的.题目中还要求计算命中率,由于在游戏开始的同时开始了记分,所以在结束游戏时,将得分和错误统计出来,很容易计算出命中率,这里就不做多余的叙述.在题目的要求的基础上,我还给游戏增加了几个难度,其实也很简单,就是控制字母下落的速度,方法是改变每次字符显示的时间间隔,这样从屏幕上看,字母下落就会有快慢.六、程序的模块程序设计时,我没有分模块,只有实现个别功能的几个子程序,分别是发声程序,延时程序,和命中率计算与显示程序,这在原代码中均有注释,在此就不在详细叙述.七、课程设计心得由于课程设计开始的比较早,所以有时间去准备.开始时在网上看了一些资料和例子,搞清楚了程序设计的基本原理.最开始不明白的地方就是如何让字符下落,后来发现就是不停的在屏幕的不同位置显示该字符,加以延时,看起来就像是字符不断的从上面掉下来.随机问题也是本程序的一个难点,看过资料后知道汇编中没有现成的完美的随机函数.所以我就想到取系统时间来制造随机数,因为时间时刻都在变化,而且打字的时间也不一定,结果游戏的随机性还不错,呵呵这学期汇编的学习,自己感觉还不错,平时也练习了不少.从汇编程序的学习中,我觉得自己突然一下子明白了一般程序设计的原理,看程序时,不再感觉茫然,自己写点小程序时,也知道该如何下手.算法上也学到了不少新的东西,总算劳有所获吧!本打算把程序的运行流程图画出来,无奈,最近考试太多,时间实在不够啊,只有在程序中直接注释了,其实程序的思路很清晰,相信大家多能看懂最后,感谢郑利平老师一学期来指导和帮助,也感谢我们班的桑磊同学在课程设计中给我解答疑问!八、源程序如下:;=======================================================================;打字游戏程序;=======================================================================init_game macro op1,op2,op3,op4,op5,op6 ;循环输出,用于初始化界面mov cx,0mov dh,op1 ;起行mov dl,op2 ;起列op6:mov ah,02hmov bh,00hint 10hpush cxmov ah,0ahmov al,op3 ;要显示的字符mov cx,01hmov bh,00hint 10hpop cxinc cxinc op4 ;指出循环输出的是行还是列cmp cx,op5 ;循环次数jne op6endm;=======================================================clean macro op1,op2,op3,op4 ;用于清屏,分别是起止的行和列mov ah,6mov bh,00010111bmov al,0mov ch,op1mov cl,op2mov dh,op3mov dl,op4int 10hmov ah,2mov bh,0mov dh,0mov dl,0int 10hendm;======================================================menu macro op1,op2,op3 ;用于屏幕上文字的输出mov cx,0mov ah,02hmov bh,00hmov dh,op1mov dl,op2int 10hlea dx,op3mov ah,9int 21hendm;=======================================================data segmentfgf db '===============================================$' ;分隔符menu1 db '1.start game$'menu2 db '2.select level$' ;主界面上显示的内容menu3 db '3.exit$'menu4 db 'select number of menu:$'menu5 db 'author: wangfeng$'menu6 db 'NO. : 20042390$'menu7 db '1.very easy$'menu8 db '2.normal$' ;难度的选择menu9 db '3.hard$'menu10 db '4.return$'menu11 db 'data : 2006.12.24$'meg1 db 'press any key to start the game...$' ;游戏开始之前的提示meg2 db 'press esc key return main menu$'meg3 db 'press space key for pause $'meg4 db 'when the game was paused,press ese to quit!$'meg5 db 'life:$' ;生命数meg6 db 'score:$' ;分数meg7 db 'hit the letter num:$'meg8 db ' miss letter num:$'meg9 db ' the shooting is:$'ma db 0mb db 0sped1 dw 0speed dw 3000d ;游戏的速度,也决定了游戏的难度letters db 78 dup(0) ;上方显示的字母life db 39hposition db 1 ;上方字母的位置用于控制落下的字母time_m db 0time_s db 0xmul db 13n db 26score1 db 0level db 1hang db 0line db 0fen1 db 0fen2 db 0fen3 db 0fen4 db 0fen5 db 0string db '100%$'error db 0data ends;============================================code segmentassume cs:code,ds:data;,ss:stackstart: mov ax,data mov ds,ax ;这里是几个数据的初始化 mov position,1 mov speed,3000 mov level,1 mov sped1,50000 mov error,0 mov score1,0 jiemian: mov ah,01h mov cx,00h or ch,00010000b int 10h ;置光标类型,用于隐藏光标 clean 0,0,24,79 ;下面这些是游戏的初始化 init_game 0,0,08h,dl,80,sk1 init_game 24,0,08h,dl,80,sk2 init_game 0,0,08h,dh,25,sk3 init_game 0,79,08h,dh,25,sk4 menu 5,15,fgf menu 7,25,menu1 ;界面显示 menu 9,25,menu2 menu 11,25,menu3 menu 13,15,fgf menu 15,25,menu4 menu 17,55,menu5 menu 19,55,menu6 menu 21,55,menu11 mov ah,2 mov bh,0 mov dh,15 mov dl,47 int 10h ;把光标放在合适的位置 mov ah,0ah mov al,' ' mov bh,00h mov cx,01h int 10h ;在选择时屏蔽其他的按键,使之不出现在屏幕上 mov ah,1 int 21h input: cmp al,'1' je begin ;当输入字符是1时, ;跳转到begin 开始游戏 cmp al,'2'je to_speed_c ;当输入字符是2时,跳转, ;由于不能直接跳转到 ;speed_c 故用了个转移 cmp al,'3' je to_exit cmp al,1bh je to_exit_d to_otherkey: jmp otherkeyto_exit: mov ah,1 int 21h cmp al,0dh jne to_otherkey jmp exitto_speed_c:jmp speed_cto_exit_d:jmp exit;=================================== begin:mov ah,1int 21hcmp al,0dhjne to_otherkeyclean 1,1,23,78play_message: ;显示有关游戏提示menu 10,18,meg1menu 12,18,meg2menu 14,18,meg3menu 16,18,meg4mov ah,07hint 21hcmp al,1bh;按任意键继续,;不把输入的字符显示在屏幕上je to_jmjmp playto_jm:jmp jiemianplay:clean 1,1,23,78mov life,39hmov ah,2mov bh,0mov dh,1mov dl,1int 10hmov bx,0lea si,lettersoutput_letters: ;显示上方字母mov ah,2chint 21h mov al,dlmov ah,0div nmov dl,ahadd dl,61hmov [si],dlmov ah,2int 21hmov cx,14987call waitfinc siinc bxcmp bx,78je nextjmp output_lettersnext:menu 23,70,meg5menu 23,30,meg6;生命数的相关显示push dxmov ah,2mov bh,0mov dh,23mov dl,76int 10hmov ah,0ahmov al,lifemov bh,0mov cx,1int 10hmov ah,2mov bh,0mov dh,23mov dl,43int 10hmov ah,0ahmov al,score1mov al,30hmov bh,0 mov cx,1 int 10h pop dx jmp game sub_p: sub position,78 cmp position,0 jne next3 inc position next3: jmp game_next game: lea si,letters mov ah,2ch ;伪随机算法,方法是读取1/100秒, int 21h mov al,dl mov position,al cmp position,0 jne next2 inc position next2: cmp position,78 ;和78比较,大于则减去78 ja sub_p game_next: add si,word ptr position dec si mov dl,position ;position 就代表的是列 mov ah,02h mov dh,1 mov bh,0 int 10h ;置光标位置 mov bl,12h temp: mov cx,0 nextrow: push cx mov cx,0 yanchi: ;延迟 push cx mov cx,0 yanchi1: add cx,1 cmp cx,sped1 ;延迟 jne yanchi1 push dx mov ah,06h mov dl,0ffh int 21h pop dxjz pass ;不输入则跳转pass cmp al," " je pause1 ;空格,暂停 jmp skip1 pause1: jmp pause skip1: cmp al,1bh je display;esc,返回到开始时的界面cmp al,[si] je to_disappear ;正确输入,字母消失pass: pop cxinc cx cmp cx,speed ;speed,字母下落速度 je print1 jmp yanchi print1: jmp print to_disappear:mov bh,0 mov ah,3 int 10h mov hang,dh mov line,dl mov bh,0 mov ah,9 mov cx,1 mov bl,1ch int 10h mov ah,2 mov bh,0 mov dh,hang mov dl,line int 10h mov dl,[si] mov ah,2 int 21h call delay0 jmp disappear ;跳到记分段 display: clean 1,1,23,78 call disp mov ah,1 int 21 cmp al,1bh je to_start1 to_start1: jmp start to_exit1: jmp exit pause: push dx mov ah,06h mov dl,0ffh int 21h pop dx cmp al,1bh ;暂停时输入大写的q,则退出游戏 je display cmp al," " ;再次按空格,游戏继续 jne pause jmp pass print: ;在字母处输入空格填 mov ah,0ah mov bh,0 mov al," " mov cx,1 int 10h mov ah,02h mov bh,0 inc dh int 10h ;光标下移一行mov ah,09hmov al,[si]mov bh,0 mov cx,1 int 10h ;输出字母 pop cx inc cx cmp cx,21 ;如果落到第21行还没有消失, ;则life 减一,字母消失 je to_print_next jmp nextrow ;如果没到21行,继续下落 to_print_next: push ax mov al,error inc almov error,al pop ax call sound1 jmp print_next ;change_0: ;jmp print_next disappear: ;正确输入后字母消失 pop cx pop cx mov ah,0ah mov bh,0 mov al," " mov cx,1 int 10h inc score1 ;此处代码是为了同步输出得分 ;和当前life 的剩余值 push ax push bx mov al,score1 mov ah,0 mov bl,10 div bl mov fen1,al mov fen2,ah pop bx pop ax mov ah,2 mov bh,0 mov dh,23 mov dl,43 int 10h mov ah,0ah mov bh,0 mov al," " mov cx,1 int 10h mov ah,0ah mov al,fen1 add al,30h mov bh,0 mov cx,1 int 10h mov ah,2 mov bh,0 mov dh,23 mov dl,44 int 10h mov ah,0ah mov bh,0 mov al," " mov cx,1 int 10hmov ah,0ah mov al,fen2add al,30h mov bh,0 mov cx,1 int 10h mov dh,hang ;输入正确后, ;将该字符在原位置高亮显示 mov dl,line mov bh,0 mov ah,2 int 10h mov ah,9 mov bh,0 mov al,' ' mov cx,1 mov bl,17h int 10hjmp hit to_over: jmp start print_next: ;life 减为0时,游戏结束 sub life,1 cmp life,30h je to_over mov ah,0ah mov al," " mov bh,0 mov cx,1 int 10h mov ah,02h mov dh,23 mov dl,76 mov bh,0 int 10h ;更新life mov ah,0ah mov al,life mov bh,0 mov cx,1 int 10h hit: ;重新把光标移到顶端 mov ah,02h mov bh,0 mov dh,1 mov dl,position int 10h mov ah,2ch int 21h mov al,dl mov ah,0 div n add ah,61h mov [si],ah ;重新在空格处设置一个字母 mov ah,0ah mov bh,0 mov cx,1 mov al,[si]int 10hjmp game speed_c: ;速度选择 mov ah,1 int 21h cmp al,0dh jne otherkey jmp speed_jm otherkey: ;隐藏非法的字符 push ax mov ah,2 mov bh,0 mov dh,15 mov dl,48 int 10hmov ah,0ahmov al," " mov bh,00h mov cx,01h int 10h mov ah,2 mov bh,0 mov dh,15 mov dl,47 int 10h pop ax mov dx,ax mov ah,2 int 21h jmp input speed_jm: ;难度选择的界面 clean 1,1,23,78 menu 6,15,fgf menu 8,30, menu7 menu 10,30,menu8menu 12,30,menu9 menu 14,30,menu10 menu 16,15,fgf menu 18,25,menu4 choose_speed: mov ah,2 mov bh,0 mov dh,18 mov dl,47 int 10h mov ah,1 int 21h choose_next: cmp al,'1' je speed1_1 jmp spe2 speed1_1: jmp speed1 spe2: cmp al,'2' je speed2_2 jmp spe3 speed2_2: jmp speed2 spe3: cmp al,'3' je speed3_3 jmp spe4 speed3_3: jmp speed3 spe4: cmp al,'4' je h_jm cmp al,1bh je h_jm_d h_jm: mov ah,1 int 21h cmp al,0dh jne otherkey1 jmp jiemian h_jm_d: jmp jiemian speed1: mov sped1,50000d jmp begin speed2: mov sped1,40000d jmp begin speed3: mov sped1,20000d jmp begin otherkey1: push ax mov ah,2 mov bh,0 mov dh,20 mov ah,2 mov bh,0 mov dh,15 mov dl,46 int 10h exit: ;退出游戏 mov ah,6 mov bh,7 mov al,0 mov ch,0 mov cl,0 mov dh,24 mov dl,80 int 10h mov ah,2 mov bh,0 mov dh,0 mov dl,0 int 10h ;清屏 mov ah,4ch int 21h waitf proc near push axwaitf1: in al,61h and al,10h cmp al,ah je waitf1 mov ah,al loop waitf1 pop ax ret waitf endp sound1 proc ;一个扬声器实验代码直接抄过来的呵呵 push cx push ax mov cx,1000h in al,61h and al,11111100b out 61h,al again: xor al,2 out 61h,al push cx mov cx,0ffffh continue: nop loop continue pop cx loop again pop ax pop cx sound1 endp ret delay0 proc push cx push ax mov cx,0ffffh delay1: nop mov ax,1000h delay2: dec ax jnz delay2 loop delay1 pop ax pop cx ret delay0 endp disp proc near ;这一段代码是为了显示打字结果的 menu 5, 15,fgf menu 7, 25,meg7 menu 9, 25,meg8 menu 11, 25,meg9 menu 13, 15,fgf push ax push bx mov al,score1 mov ah,0 mov bl,10 div bl mov fen3,al mov fen4,ah pop bx pop ax push ax push dx mov ah,2 mov bh,0 ;显示正确的得分 mov dl,45 mov dh,7 int 10h mov al,fen3 mov dl,al add dl,30hmov ah,2int 21hmov dl,fen4add dl,30hmov ah,2int 21hpop dxpop axpush axpush dxmov al,erroradd al,30hmov fen5,almov ah,2mov bh,0mov dl,45mov dh,9int 10hmov ah,2mov dl,fen5;显示错误的个数int 21hpop dxpop axpush axpush bxpush cxpush dxmov ah,2mov bh,0mov dl,44mov dh,11int 10hmov al,score1 mov dl,error add dl,alcmp al,dlje skipmov bl,10mul bldiv dlmov ma,al;命中率十位mov al,ahmul bldiv dlmov mb,al;命中率个位jmp next1skip:push dxlea dx,string ;如果错误为0,则命中率为100%mov ah,9int 21hpop dxjmp exit1next1:push dxmov dl,maadd dl,30hmov ah,2int 21hmov dl,mbadd dl,30hmov ah,2int 21hmov ah,2mov dl,25h ;输出'%' int 21hpop dxexit1:mov ah,1int 21hcmp al,1bh jne exit1pop dxpop cxpop bx pop ax ret disp endpcode endsend start。
微机原理课程设计报告题目:练习打字程序学生姓名:学号: 201017010213专业班级:计科专业10102班同组姓名:指导教师:杨红杰设计时间: 2013年下学期第17周目录1课程设计内容与目的 (3)2相关理论知识 (3)2.1扬声器驱动 (3)2.2 相关指令 (3)3程序段设计 (5)3.1字符串的输入设计 (5)3.2错字变红色的设计 (5)3.3报警部分设计 (6)4硬件设计 (7)4.1并行接口8255A (7)4.2硬件连接图 (9)5程序流程图 (10)6程序调试效果 (11)7心得体会 (12)8参考文献 (12)附录 (13)1课程设计内容与目的课程设计内容:设计一个在键盘上练习打字的程序。
先在屏幕上显示一段文字,用户按照它在键盘上输入,如果按错键则以红色显示并报警,正确的输入,则正常显示。
课程设计目的:熟悉和掌握有关键盘ASCⅡ码,中断及字符显示技术。
课程设计要求:自行编制报警中断和显示错字红色中断处理程序,为保存原中断向量。
程序运行时,通过条件调用自编的中断向量处理程序。
程序退出时,恢复中断向量。
屏幕上显示出提示信息和练习的字符段,按照字符段从键盘上输入字符即可,每输入完一行后能自动刷新练习的字符段按Esc键可退出程序。
2相关理论知识2.1扬声器驱动PC机上的大多数I/O都是由主板上的8255(或8255A)可编程外围接口芯片(PPI)管理,用PPI输出寄存器中的PB0和PB1来控制扬声器的驱动,而8253的通道2的输出端与扬声器相连,PB0连接通道2的CKL2,PB1和通道2的OUT2通过一与非门连接扬声器,在PB0与PB1都为高电平时,由8253产生的脉冲就进入扬声器产生声音。
2.2 相关指令1)无条件转移指令无条件转移指令必须指定转移的目标地址(或称为转向地址),将程序无条件地转移到目标地址,去执行从该地址开始的指令。
如“JMP 目标地址”2)条件转移指令条件指令是根据执行该指令前标志位的状态而决定是否发生的控制转移指令。
拼音打字小游戏拼音打字小游戏是一款基于拼音的打字游戏,旨在提高玩家的打字速度和准确性。
以下是游戏的详细玩法和规则:目标:游戏的目标是在规定的时间内,尽可能快速而准确地输入正确的汉字拼音。
规则:1. 游戏开始后,屏幕上会显示一个随机的汉字。
2. 玩家需要根据这个汉字的发音,输入正确的拼音。
3. 玩家可以使用键盘上的拼音输入法或者拼音输入法软件来输入拼音。
4. 输入拼音后,按下回车键确认输入。
5. 如果输入的拼音与汉字的发音匹配,玩家将得到一定的分数,并进入下一个汉字。
6. 如果输入的拼音与汉字的发音不匹配,玩家将失去一定的分数,并重新输入拼音。
7. 游戏会记录玩家的打字速度和准确性,并根据表现给予相应的评级。
术语和技巧:1. 拼音输入法:玩家可以使用键盘上的拼音输入法来输入拼音。
拼音输入法根据输入的拼音自动给出相应的汉字选择,玩家只需选择正确的汉字即可。
2. 快速而准确:在游戏中,玩家需要尽可能快速地输入拼音,同时确保准确性。
这需要玩家具备良好的拼音输入技巧和对汉字发音的准确理解。
创造性和想象力:1. 挑战模式:游戏可以设置不同的难度级别,如初级、中级和高级,以增加游戏的挑战性。
2. 多样化的汉字:游戏可以随机生成各种汉字,包括常用的和不常见的汉字,以提供更多的挑战和乐趣。
3. 计时模式:游戏可以设定时间限制,如30秒或60秒,玩家需要在规定时间内尽可能多地输入正确的汉字拼音,以增加游戏的紧张感和挑战性。
通过以上的玩法和规则,拼音打字小游戏可以提供一个有趣而具有挑战性的打字练习平台,帮助玩家提高打字速度和准确性。
玩家可以根据自己的喜好和水平选择不同的难度级别和挑战模式,以享受游戏的乐趣并不断提升自己的打字技能。
摘 要 汇编语言(Assembly Language)是面向机器的程序设计语言,汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。在汇编语言中,用助记符(Mnemonic)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。因此汇编语言亦称为符号语言。 关键字:汇编语言、程序设计、助记符 目录 摘 要 ...................................................................................................................................................................... 0 目录 ........................................................................................................................................................................ 1 前 言 ...................................................................................................................................................................... 2 第1章 系统分析............................................................................................................................................... 3 第2章 系统总体设计....................................................................................................................................... 4 2.1 打字程序包括以下五个子程序: ............................................................................................................. 4 2.2 算法的整体设计思路 .................................................................................................................................. 4 2.3 程序的主要特点 .......................................................................................................................................... 4
第3章 详细设计............................................................................................................................................... 5 3. 1主界面伪代码.............................................................................................................................................. 5 3. 2等级界面伪代码 .......................................................................................................................................... 5 3.3游戏界面伪代码 ......................................................................................................................................... 6 3. 4清屏子程序设计 .......................................................................................................................................... 6 3.5密码程序设计 ............................................................................................................................................. 7 3.6宏代码 ......................................................................................................................................................... 8 3.6.1在指定位置显示彩色字符串 ............................................................................................................. 8 3.6.2显示背景 ............................................................................................................................................. 9 3.6.3画横向边框的宏 ................................................................................................................................. 9 3.6.4画竖边框的宏 ................................................................................................................................... 10 3.7功能的进一步完善 ................................................................................................................................... 11 3.7.1完善代码一 ....................................................................................................................................... 11 3.7.2完善代码二 ....................................................................................................................................... 12 3.7.3完善代码三 ....................................................................................................................................... 12
第4章 软件使用说明书 ................................................................................................................................. 14 4.1密码界面图: ........................................................................................................................................... 14 4.2主界面图: ............................................................................................................................................... 14 4.3等级选择界面: ....................................................................................................................................... 14 4.4游戏界面: ............................................................................................................................................... 15