打字游戏

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

湖南农业大学东方科技学院

课程设计报告

课程名称:微机原理与接口技术

设计题目:打字游戏程序设计

学生姓名:罗英杰

学号: 2

年级专业:2008级计算机科学与技术

班级: 3 班

指导老师:王兴波

学院:东方科技学院

湖南·长沙

提交日期:2009年12月

一、任务与要求

1. 开始界面的提示信息:进入游戏,退出

2. 打字游戏:字母从屏幕上方下落,若用户在字母下落过程中输入正确字母,字母消失,

输入不正确,字母继续下落

3. 空格键退出游戏

二、分析与规划

1、结构分析图,如下

2、布局分析:

首先,出现菜单主界面起到提示作用。然后进入游戏,接着完成游戏的退出。

三、实现过程

1、出现菜单主界面:

ZK db "WELCOME TO PLAY$"

no db "shejiren: Luo Yingjie 2009/12/09 $"

meg db "press Enter key to continue.......$"

meg1 db "when a letter is dropping,please hit it!$"

meg2 db "press space key to pause!$"

meg3 db "press ESC key to return main interface!$"

meg4 db "press letter 'E' to exit!$"

上面的代码菜单主界面的内容

clear_screen 00d,00d,24d,79d

Init_game 00d,00d,0ah,dl,80d,nextsign1 Init_game 24d,00d,0ah,dl,80d,nextsign2

Init_game 00d,00d,0ah,dh,25d,nextsign3

Init_game 00d,79d,0ah,dh,25d,nextsign4

menu 05d,15d,ZK ;菜单信息的宏调用

menu 07h,15d,no

menu 09d,15d,meg

menu 11d,15d,meg1

menu 13d,15d,meg2

menu 15d,15d,meg3

menu 17d,15d,meg4

clear_screen 01d,01d,23d,78d ;清屏宏调用

clear_screen 01d,01d,23d,78d

Init_game 23d,01d,01h,dl,78d,nextsign5

mov ah,02h

mov bh,00h

mov dh,01h

mov dl,01h

int 10h

mov cx,00h

lea si,letters

cmp al,1bh ;如果键入ESC,则返回主菜单

to_start1: ;返回主菜单

jmp start

上面代码是解决怎样使主界面输出的

2、游戏界面的实现:

speed dw 600d

letters db "jwmilzoeucgpravskntxhdyqfb"

db "iytpkwnxlsvxrmofzhgaebudjq"

db "nwimzoexrphysfqtvdcgljukda"

letters_bak db "jwmilzoeucgpravskntxhdyqfb" db "iytpkwnxlsvxrmofzhgaebudjq" db "nwimzoexrphysfqtvdcgljukda" letter_counter db 0

life_flag db 78 dup(0)

position_flag db 78 dup(0)

present_position db 1

以上代码是字母的排列及出现的顺序

init_postion_flag:

mov [si],ah

inc si

inc cx

cmp cx,78d

jne init_postion_flag

lea di,letters

lea si,letters_bak

mov cx,00h

init_letters:

mov ah,[si]

mov [di],ah

inc si

inc di

inc cx

cmp cx,78d

jne init_letters

mov ah,00h

lea si,life_flag

mov cx,00h

init_life_flag:

mov [si],ah

inc si

inc cx

cmp cx,78d

jne init_life_flag

mov cx,00h

mov ah,01h

or ch,00010000b

int 10h

put: mov ah,02h ;设置光标位置

mov bh,00h

mov dh,22d

mov dl,33d

int 10h

mov ah,01h ;从键盘输入任意字符 int 21h

cmp al,0dh

相关文档
最新文档