汇编语言:猜数字游戏的设计与实现.doc
《汇编语言:猜数字游戏的设计与实现.doc》由会员分享,可在线阅读,更多相关《汇编语言:猜数字游戏的设计与实现.doc(5页珍藏版)》请在沃文网上搜索。
1、猜数字游戏的设计与实现1 需求说明或问题描述1.1 问题描述程序运行后自动产生一个1100之间的随机整数,游戏开始,程序根据游戏者输入的数字与所需猜测数字进行比较,并给出响应,游戏者根据程序响应再猜数字,最后得到正确数字。1.2 需求说明程序应有操作提示,输入和输出,界面追求友好,最好是菜单式的界面。设计若干用例(测试数据),上级测试程序并分析(评价)所设计的程序。2 设计说明2.1 简要设计框图如下:2.2 简要分析思想首先通过指令在程序中产生随机数,由键盘输入的数字与其比较,如果大于随机数,则提示输入的数太大,请重新输入;如果小于随机数,则提示输入的数太小,请重新输入;如果等于随机数,则提
2、示正确;如果输入的数不是十进制数,则直接退出。3 详细的算法描述3.1随机数的产生通过查找各种资料知,随机数的产生也是一种算法,通过种子数据,计算出不同的随机数。但,此次试验,我通过对系统当前时间的提取来表示随机数,即用时间中的“秒”来作这个随机数。指令为:mov ah,2ch ;取系统时间,CH:CL=时间:分钟;DH=秒int 21h3.2 从键盘输入数据如果仅用指令:mov ah,01h Int 21h来从键盘读取数据,则只能取一个字符,即,只能读取一位数字;在试验中通过反复调试,可以对每次输入的数(存放于al中)与“回车”的ASCII比较,如果不是“回车”,则返回继续输入;如果是回车,
3、则跳出,完成数据的输入。每一次返回继续输入时,原来的al中的数据要以个位加入到bx中,即,bx=bx*10+al;这样可以保证输入的数据不会丢失。3.3 数据的比较用输入的数据(存放于bx中)与随机数(存放于a中:mov a,dx)比较;如果大于,则输出提示数据太大,请重新输入,并跳转到键盘输入数据指令;如果小于,则输出提示数据太小,请重新输入,并跳转到键盘输入数据指令;如果等于,则提示正确,并结束。其中,小于跳转用jb;大于跳转用ja;等于用jz。3.4 其他指令回车换行指令:为了保持程序输出结果的工整性,多用回车换行指令:MOV AH,02h MOV DL,0ah INT 21h MOV
4、DL,0dh INT 21h输出提示性语句指令:为使程序输出界面更互动化,常用提示性语句如:MOV AH,9MOV DX,OFFSET mess2MOV 21h退出语句:使用该语句退出整个程序:MOV AH,4CHINT 21H4 源程序与执行结果(含测试方法和测试结果)4.1 源程序5data SEGMENTmess1 db Please input your number:$mess2 db Your number is larger,please change your number:$mess3 db Your number is smaller,please change your
5、number:$mess4 db Thats the right number!$ a dw ?data ENDScode SEGMENT assume cs:code,ds:data begin:mov ax,datamov ds,ax mov ah,9mov dx,offset mess1int 21h MOV AH,02h MOV DL,0ah INT 21h MOV DL,0dh INT 21hmov ah,2ch ;取当前时间的秒为随机数int 21hmov al,dhmov ah,0mov a,axmov bx,0 l0:MOV AH,1 ;输入十进制数 INT 21h CMP A
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 数字 游戏 设计 实现