微机课程方案打字游戏.docx

上传人:b****7 文档编号:25928565 上传时间:2023-06-16 格式:DOCX 页数:15 大小:42.55KB
下载 相关 举报
微机课程方案打字游戏.docx_第1页
第1页 / 共15页
微机课程方案打字游戏.docx_第2页
第2页 / 共15页
微机课程方案打字游戏.docx_第3页
第3页 / 共15页
微机课程方案打字游戏.docx_第4页
第4页 / 共15页
微机课程方案打字游戏.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

微机课程方案打字游戏.docx

《微机课程方案打字游戏.docx》由会员分享,可在线阅读,更多相关《微机课程方案打字游戏.docx(15页珍藏版)》请在冰豆网上搜索。

微机课程方案打字游戏.docx

微机课程方案打字游戏

窗口初始化宏定义

00000000000000000000000000000000000000000

000000000

lnit_wmacrow_op1,w_op2,w_op3,w_op4,w_op5,w_op6,w_op7

movcx,00h

movdh,w_op1

movdl,w_op2

w_op6:

movah,02h

movbh,00h

int10h

pushcx

movah,09h

moval,w_op3

movbh,00h

movbl,w_op7

movcx,01h

int10h

popcx

inccx

incw_op4

cmpcx,w_op5

jnew_op6

endm

00000000000000000000000000000000000000000

000000000

00菜单初始化宏定义

00000000000000000000000000000000000000000

000000000

menumacrom_op1,m_op2,m_op3

movah,02h

movbh,00h

movdh,m_op1

movdl,m_op2

int10h

movah,09h

leadx,m_op3

int21h

endm

00000000000000000000000000000000000000000

000000000

draw_textmacrot_op1,t_op2,t_op3movax,data

moves,ax

movbp,offsett_op3

movdh,t_op1

movdl,t_op2

movah,02h

int10h

movcx,18

moval,00h

movbh,00h

movbl,04h。

框架颜色

movah,13h

int10h

endm

00000000000000000000000000000000000000000

0000000000000

time_chmacroc_op1,c_op2

leadi,c_op1

leasi,c_op2

cld

movcx,8

repmovsb

endm

0000000000

show_timemacros_op1,s_op2,s_op3,s_op4

MOVdh,s_op1movdl,s_op2

MO\BP,0FFSET_op3

M0VCX,s_op4

MO\BX,004EH

MOVAX,1301H

INT10Hendmdatasegment

wel1db'Thisisasimpleasmwordgame!

$'

wel2db'Editedbywuhanligongdaxue@whut.dq0604$'

wel3db'Whenaletterisdropping,pleasehitit!

$'

wel4db'Pressspacetopause$'

wel5db'PressESCtoreturnbackmaininterface$'

wel6db'PressletterEtoexit!

$'

wel7db'Enteryournameandpressentertostartthisgame!

$'wel8db'Yournamehere:

$'

playerdb'Player:

'

player_nadb6dup(''>,'$'

failuredb0

letter_counterdb0

letter_countdw0

scoredb'score:

'score_showdb'$'score_numberdb0score_number1db30hscore_number2db30h

char_ptdb'char_?

'

speeddwOafffh

lettersdb"qpwoeirutylaksjdhfgzmxncbvpslwpdlemdkgw"

letters_bakdb"qpwoeirutylaksjdhfgzmxncbvpslwpdlemdkgw"letters_counterdb0

letters_countdw0

life_flagdb39dup(0>present_positiondb1

start_str

db'start:

$'

start_time

db8dup('

:

'>

now_time

db8dup(':

'

>

end_str

db'end:

$'

end_time

db8dup(':

'

>

t_time

db8dup(':

'

>

word_str

db'totalword:

$'

text_frame

db0c9h,16

dup(0cdh>,0bbh

text_frame10text_frame11text_frame12text_frame13text_frame14text_frame15

db0cch,16dup(0cdh>,0b9hdb0bah,16dup(20h>,0bahdb0bah,16dup(20h>,0bahdb0bah,16dup(20h>,0bahdb0bah,16dup(20h>,0bahdb0c8h,16dup(0cdh>,0bchdataendsstacksegmentstackdb200dup(?

>stackendscodesegment

mainprocfar

assumecs:

code,ds:

data,ss:

stack

start:

movax,data

movds,ax

moves,ax

movax,0003h

int10h

movah,01h

orch,00010000b

int10h

000000000

利用宏初始化窗口边框

00000000000000000000000000000000000000000

000000000

lnit_w00d,00d,02d,dl,80d,win_x1,04h

lnit_w24d,00d,02d,dl,80d,win_x2,04h

lnit_w00d,00d,02d,dh,25d,win_y1,04h

lnit_w00d,79d,02d,dh,25d,win_y2,04hmenu08h,14h,wel1menu09h,14h,wel2menu0ah,14h,wel3menu0bh,14h,wel4menu0ch,14h,wel5menu0dh,14h,wel6menu0fh,14h,wel7menu10h,14h,wel8

00000000000000000000000000000000000000000000000000

00输入玩家名字

00000000000000000000000000000000000000000000000000

input_name:

movcx,16leasi,player_nanext_input:

movah,01hint21hcmpal,08hjzerase_namecmpal,0dhjzbegin_gamecmpal,45hjzexitmov[si],alincsiloopnext_inputjmpbegin_gamemovah,1hint21hexit:

movah,4chint21herase_name:

pushcxpushaxmovah,Oahmoval,''movbl,00hmovbh,00hmovcx,1int10hpopaxpopexjmpnext_input

00000000000000000000000000000000000000000

000000000

begin_game:

callelear_sereen

callget_time

time_ehstart_time,t_time

movletter_eounter,00h

movpresent_position,1

000000000000000000000000000000000000000000000000000000000

leasi,letters

leadi,letters_bak

movex,00h

init_letters:

LETTER赋值LETTERSBAK

movah,[di]

mov[si],ah

inesi

inedi

ineex

empex,39

jneinit_letters

movah,00h

leasi,life_flag

movex,00h

init_life_flag:

LIFE_FLAG武值0

mov[si],ah

inesi

ineex

empex,39

jneinit_life_flag

00000000000000000000000000000000000000000

000000000000000000

00000初始化菜单

00000000000000000000000000000000000000000

movah,0bh

movbx,0100h

int10h

callclear_screen

draw_text04h,38h,text_framedraw_text05h,38h,text_frame1draw_text06h,38h,text_frame2draw_text07h,38h,text_frame3draw_text08h,38h,text_frame4draw_text09h,38h,text_frame5draw_text0ah,38h,text_frame6draw_text0bh,38h,text_frame7draw_text0ch,38h,text_frame8draw_text0dh,38h,text_frame9draw_text0eh,38h,text_frame10draw_text0fh,38h,text_frame11draw_text10h,38h,text_frame12draw_text11h,38h,text_frame13draw_text12h,38h,text_frame14draw_text13h,38h,text_frame15lnit_w02d,05d,0dbh,dl,40d,rect_x1,04h

lnit_w21d,05d,0dbh,dl,40d,rect_x2,04h

Init_w02d,05d,0dbh,dh,20d,rect_y1,04h

Init_w02d,45d,0dbh,dh,20d,rect_y2,04hcallshow_info

Init_w20d,06d,0eh,dl,39d,yinfu,0fhmenu06d,58d,start_str

show_time06d,64d,start_time,08menu08d,58d,end_str

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

showtime

0000000000000

0000初始化字母

menu10d,58d,word_str

000000000000000

movah,02h

movbh,00h

movdh,04d

movdl,06d

int10h

000000000000000

000000000000000

movax,datamoves,ax

movbp,offsetlettersmovdh,03d

movdl,06d

movah,02h

int10h

movcx,39

moval,00h

movbh,00h

movbl,0fh。

框架颜色

个人资料整翌_仅限学习使用_

movah,13h

int10h

jmpnextcycle

00000000000000000000000000000000000000000

000000000000000000

from_front:

subpresent_position,39d

jmpbackto_si

find_zero:

cmppresent_position,39d

jefrom_one

movah,00h

nextsi:

addpresent_position,01h

incsi

cmp[si],ah

jebackto_di

cmppresent_position,39

jefrom_one

jmpnextsi

from_one:

movpresent_position,01h

jmpbackto_si

nextcycle:

leadi,letters

leasi,life_flag

addpresent_position,16d

cmppresent_position,39

jafrom」ront

backto_si:

addsi,wordptrpresent_position

decsi

movah,[si]

cmpah,01h

jefind_zero

backto_di:

0movah,01h

0mov[si],ah

pushcx

xorch,ch

movcl,present_position

inc_di:

incdi

loopinc_di

popcx

0adddi,wordptrpresent_position

个人资料整翌_仅限学习使用

decdi。

DI为字母位置指针,开始指向LETTER首地址

movdl,present_position

adddl,05

movah,02h

movbh,00h

movdh,03h

int10h。

找相对应都字母位置

movcx,00h

nextrow:

pushcx

movcx,00h

out_cycle:

延迟

pushcx

movcx,00h

in_cycle:

addcx,01h

cmpcx,1000

jnein_cycle

0000000000000000000000000000000

pushdx

movah,06h。

从键盘输入字符

movdl,0ffh

int21h

popdx

jzpass。

此行已经注释掉

cmpal,1bh。

如果键入ESC则返回主菜单

jeto_start1

cmpal,''。

如果键入SPACE则游戏暂停

jepause

cmpal,[di]。

输入字母正确!

则字母消失

jedisappear

pass:

popcx

inccx

cmpcx,speed

jeprint

jmpout_cycle

pause:

pushdx。

暂停处理

movah,06h

movdl,0ffh

int21h

popdx

cmpal,''

jnepause

jmppass

to_start1:

返回主菜单

jmpgame_lose

print:

movah,0ah。

在当前光标位置写空格

moval,''

movbh,00hmovcx,01hint10hincdh

movah,02h。

改变光标位置

movbh,00h

int10h

movah,09h。

在当前光标位置写字母

moval,[di]

movbh,00hmovbl,0fhmovcx,01hint10h

popcx

inccxcmpcx,17d

jeprint_next_letter

jmpnextrow。

下一行

disappear:

击中字母后输出空格

popcxpopcx

movah,0ahmoval,''movbh,00hmovcx,01h

int10h

addscore_number,1d

addscore_number1,1d

pushax

pushsi

pushdx

moval,score_number1

leasi,score_show

cmpal,9

jascore_next

incsimov[si],al

jmpscore_over

score_next:

incscore_number2

moval,score_number2mov[si],al

moval,30hmovscore_number1,alincsi

mov[si],al

score_over:

popsi

popax

callshowinfo

jmphit

print_next_letter:

addfailure」

cmpfailure,39

jzgame_lose

leasi,life_flag。

击中下面的符号,符号消失

addsi,wordptrpresent_positiondecsimovah,1mov[si],ahmovah,0ahmoval,20Hmovbh,00hmovcx,01h

int10h

incdh

hit:

movah,02h。

上面字母消失

movbh,00h

movdh,03h

int10h

moval,[di]。

出现下一个新字母数值都算法

addal,7d

cmpal,'z'

jaconvey_letter。

ja变jg

movah,0ah

movbh,00hmovcx,01hint10h

mov[di],al

addletters_counter,1

pushdx

pushax

pushbx

pushcx

callshow_counter

popcx

popbx

popax

popdx

show_time12d,63d,letters_count,02

jmpnextcycle

game_lose:

callget_time

time_chend_time,t_time

menu08d,58d,end_str

show_time08d,64d,end_time,08

game_again:

movah,06hmovdl,Offh

int21h

jzgame_againjmpstart

convey_letter:

subal,'z'addal,'a'movah,0ahmovbh,00hmovcx,01hint10hmov[di],al

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

当前位置:首页 > 农林牧渔 > 林学

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

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