课程设计打字游戏Word格式文档下载.docx

上传人:b****5 文档编号:16337035 上传时间:2022-11-23 格式:DOCX 页数:30 大小:21.98KB
下载 相关 举报
课程设计打字游戏Word格式文档下载.docx_第1页
第1页 / 共30页
课程设计打字游戏Word格式文档下载.docx_第2页
第2页 / 共30页
课程设计打字游戏Word格式文档下载.docx_第3页
第3页 / 共30页
课程设计打字游戏Word格式文档下载.docx_第4页
第4页 / 共30页
课程设计打字游戏Word格式文档下载.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

课程设计打字游戏Word格式文档下载.docx

《课程设计打字游戏Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《课程设计打字游戏Word格式文档下载.docx(30页珍藏版)》请在冰豆网上搜索。

课程设计打字游戏Word格式文档下载.docx

最后,感谢郑利平老师一学期来指导和帮助,也感谢我们班的桑磊同学在课程设计中给我解答疑问!

八、源程序如下:

;

=======================================================================

打字游戏程序

init_gamemacroop1,op2,op3,op4,op5,op6;

循环输出,用于初始化界面

movcx,0

movdh,op1;

起行

movdl,op2;

起列

op6:

movah,02h

movbh,00h

int10h

pushcx

movah,0ah

moval,op3;

要显示的字符

movcx,01h

popcx

inccx

incop4;

指出循环输出的是行还是列

cmpcx,op5;

循环次数

jneop6

endm

=======================================================

cleanmacroop1,op2,op3,op4;

用于清屏,分别是起止的行和列

movah,6

movbh,00010111b

moval,0

movch,op1

movcl,op2

movdh,op3

movdl,op4

movah,2

movbh,0

movdh,0

movdl,0

======================================================

menumacroop1,op2,op3;

用于屏幕上文字的输出

movdh,op1

movdl,op2

leadx,op3

movah,9

int21h

datasegment

fgfdb'

===============================================$'

;

分隔符

menu1db'

1.startgame$'

menu2db'

2.selectlevel$'

;

主界面上显示的内容

menu3db'

3.exit$'

menu4db'

selectnumberofmenu:

$'

menu5db'

author:

wangfeng$'

menu6db'

NO.:

20042390$'

menu7db'

1.veryeasy$'

menu8db'

2.normal$'

;

难度的选择

menu9db'

3.hard$'

menu10db'

4.return$'

menu11db'

data:

2006.12.24$'

meg1db'

pressanykeytostartthegame...$'

游戏开始之前的提示

meg2db'

pressesckeyreturnmainmenu$'

meg3db'

pressspacekeyforpause$'

meg4db'

whenthegamewaspaused,pressesetoquit!

meg5db'

life:

生命数

meg6db'

score:

分数

meg7db'

hittheletternum:

meg8db'

missletternum:

meg9db'

theshootingis:

madb0

mbdb0

sped1dw0

speeddw3000d;

游戏的速度,也决定了游戏的难度

lettersdb78dup(0);

上方显示的字母

lifedb39h

positiondb1;

上方字母的位置用于控制落下的字母

time_mdb0

time_sdb0

xmuldb13

ndb26

score1db0

leveldb1

hangdb0

linedb0

fen1db0

fen2db0

fen3db0

fen4db0

fen5db0

stringdb'

100%$'

errordb0

dataends

============================================

codesegment

assumecs:

code,ds:

data;

ss:

stack

start:

movax,data

movds,ax

这里是几个数据的初始化

movposition,1

movspeed,3000

movlevel,1

movsped1,50000

moverror,0

movscore1,0

jiemian:

movah,01h

movcx,00h

orch,00010000b

int10h

置光标类型,用于隐藏光标

clean0,0,24,79

下面这些是游戏的初始化

init_game0,0,08h,dl,80,sk1

init_game24,0,08h,dl,80,sk2

init_game0,0,08h,dh,25,sk3

init_game0,79,08h,dh,25,sk4

menu5,15,fgf

menu7,25,menu1

界面显示

menu9,25,menu2

menu11,25,menu3

menu13,15,fgf

menu15,25,menu4

menu17,55,menu5

menu19,55,menu6

menu21,55,menu11

movdh,15

movdl,47

把光标放在合适的位置

moval,'

'

int10h

在选择时屏蔽其他的按键,使之不出现在屏幕上

movah,1

input:

cmpal,'

1'

jebegin

当输入字符是1时,

跳转到begin开始游戏

2'

jeto_speed_c

当输入字符是2时,跳转,

由于不能直接跳转到

speed_c故用了个转移

3'

jeto_exit

cmpal,1bh

jeto_exit_d

to_otherkey:

jmpotherkey

to_exit:

movah,1

int21h

cmpal,0dh

jneto_otherkey

jmpexit

to_speed_c:

jmpspeed_c

to_exit_d:

===================================

begin:

clean1,1,23,78

play_message:

显示有关游戏提示

menu10,18,meg1

menu12,18,meg2

menu14,18,meg3

menu16,18,meg4

movah,07h

按任意键继续,

不把输入的字符显示在屏幕上

jeto_jm

jmpplay

to_jm:

jmpjiemian

play:

clean1,1,23,78

movlife,39h

movdh,1

movdl,1

movbx,0

leasi,letters

output_letters:

显示上方字母

movah,2ch

moval,dl

movah,0

divn

movdl,ah

adddl,61h

mov[si],dl

movcx,14987

callwaitf

incsi

incbx

cmpbx,78

jenext

jmpoutput_letters

next:

menu23,70,meg5

menu23,30,meg6

生命数的相关显示

pushdx

movdh,23

movdl,76

moval,life

movcx,1

movdl,43

moval,score1

moval,30h

popdx

jmpgame

sub_p:

subposition,78

cmpposition,0

jnenext3

incposition

next3:

jmpgame_next

game:

leasi,letters

movah,2ch

伪随机算法,方法是读取1/100秒,

moval,dl

movposition,al

jnenext2

next2:

cmpposition,78

和78比较,大于则减去78

jasub_p

game_next:

addsi,wordptrposition

decsi

movdl,position

position就代表的是列

movbh,0

置光标位置

movbl,12h

temp:

nextrow:

yanchi:

延迟

yanchi1:

addcx,1

cmpcx,sped1

jneyanchi1

movah,06h

movdl,0ffh

jzpass

不输入则跳转pass

cmpal,"

"

jepause1;

空格,暂停

jmpskip1

pause1:

jmppause

skip1:

cmpal,1bh

jedisplay

esc,返回到开始时的界面

cmpal,[si]

jeto_disappear

正确输入,字母消失

pass:

cmpcx,speed

speed,字母下落速度

jeprint1

jmpyanchi

print1:

jmpprint

to_disappear:

movah,3

movhang,dh

movline,dl

movbl,1ch

movdh,hang

movdl,line

movdl,[si]

calldelay0

jmpdisappear

跳到记分段

display:

calldisp

int21

jeto_start1

to_start1:

jmpstart

to_exit1:

pause:

暂停时输入大写的q,则退出游戏

jedisplay

再次按空格,游戏继续

jnepause

jmppass

print:

在字母处输入空格填

moval,"

movcx,1

incdh

光标下移一行

movah,09h

moval,[si]

输出字母

cmpcx,21

如果落到第21行还没有消失,

则life减一,字母消失

jeto_print_next

jmpnextrow

如果没到21行,继续下落

to_print_next:

pushax

moval,error

incal

moverror,al

popax

callsound1

jmpprint_next

change_0:

jmpprint_next

disappear:

正确输入后字母消失

incscore1

此处代码是为了同步输出得分

和当前life的剩余值

pushax

pushbx

movbl,10

divbl

movfen1,al

movfen2,ah

popbx

popax

moval,fen1

addal,30h

movdl,44

moval,fen2

movdh,hang

输入正确后,

将该字符在原位置高亮显示

movbl,17h

jmphit

to_over:

print_next:

life减为0时,游戏结束

sublife,1

cmplife,30h

jeto_over

更新life

hit:

重新把光标移到顶端

movah,02h

movdl,position

addah,61h

mov[si],ah

重新在空格处设置一个字母

speed_c:

速度选择

jneotherkey

jmpspeed_jm

otherkey:

隐藏非法的字符

pushax

movdl,48

movdx,ax

jmpinput

speed_jm:

难度选择的界面

menu6,15,fgf

menu8,30,menu7

menu10,30,menu8

menu12,30,menu9

menu14,30,menu10

menu16,15,fgf

menu18,25,menu4

choose_speed:

movdh,18

choose_next:

jespeed1_1

jmpspe2

speed1_1:

jmpspeed1

spe2:

jespeed2_2

jmpspe3

speed2_2:

jmpspeed2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1