汇编语言:猜数字游戏的设计与实现.docxVIP

汇编语言:猜数字游戏的设计与实现.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
猜数字游戏的设计与实现 1需求说明或问题描述 1.1问题描述 程序运行后自动产生一个1~100之间的随机整数,游戏开始,程序根据游戏 者输入的数字与所需猜测数字进行比较, 并给出响应,游戏者根据程序响应再猜 数字,最后得到正确数字。 1.2需求说明 程序应有操作提示,输入和输出,界面追求友好,最好是菜单式的界面。设 计若干用例(测试数据),上级测试程序并分析(评价)所设计的程序。 2设计说明 2.1简要设计框图如下: 2.2简要分析思想 首先通过指令在程序中产生随机数,由键盘输入的数字与其比较,如果大于 随机数,贝U提示输入的数太大,请重新输入;如果小于随机数,贝U提示输入的数 太小,请重新输入;如果等于随机数,则提示正确;如果输入的数不是十进制数, 则直接退出。 3详细的算法描述 3.1随机数的产生 通过查找各种资料知, 随机数的产生也是一种算法, 通过种子数据, 计算出 不同的随机数。但,此次试验,我通过对系统当前时间的提取来表示随机数,即 用时间中的“秒”来作这个随机数。 指令为: mov ah,2ch ;取系统时间,CH:CL时间:分钟;DH秒 int 21h 3.2 从键盘输入数据 如果仅用指令: mov ah,01h Int 21h 来从键盘读取数据,则只能取一个字符,即,只能读取一位数字;在试验中 通过反复调试,可以对每次输入的数(存放于 al 中)与“回车”的 ASCII 比较, 如果不是“回车”,则返回继续输入;如果是回车,则跳出,完成数据的输入。 每一次返回继续输入时,原来的 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 DL,0dh INT 21h 输出提示性语句指令: 为使程序输出界面更互动化, 常用提示性语句如: MOV AH,9 MOV DX,OFFSET mess2 MOV 21h 退出语句: 使用该语句退出整个程序: MOV AH,4CH INT 21H 4 源程序与执行结果(含测试方法和测试结果) 4.1 源程序 data SEGMENT mess1 db Please input your number:$ mess2 db Your number is larger,please change your number:$ mess3 db Your number is smaller,please change your number:$ mess4 db Thats the right number!!!$ a dw ? data ENDS code SEGMENT assume cs:code,ds:data begin: mov ax,data mov ds,ax mov ah,9 mov dx,offset mess1 int 21h MOV AH,02h MOV DL,0ah INT 21h MOV DL,0dh INT 21h mov ah,2ch ;取当前时间的秒为 随机数 int 21h mov al,dh mov ah,0 mov a,ax mov bx,0 l0:MOV AH,1 ;输入十进制数 INT 21h CMP AL,0dh JZ l4 cmp al,48 jb exit cmp al,57 ja exit AND AL,0fh MOV AH,0 XCHG AX,BX MOV CX,10 MUL CX ADD BX,AX JMP l0 l4: MOV AH,02h MOV DL,0ah INT 21h MOV DL,0dh INT 21h cmp bx,a ;输入值与随机数比较 jb l1 ;小于 cmp bx,a ;大于 ja l2 cmp bx,a ;等于 jz l3 l1:mov ah,9 mov dx,offset mess3 int 21h MOV AH,02h MOV DL,0ah INT 21h MOV DL,0dh INT 21h mov ax,0 mov bx,0 jmp l0 l2:mov ah,9 mov dx,offset mess2 int 21h MOV AH,02h MOV DL,0ah INT 2

文档评论(0)

wumanduo11 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档