微机原理汇编语言之猜数字游戏.docVIP

  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文档。上传文档
查看更多
- - - -可修编- 猜数字游戏设计文档 〔源代码是上传文档加上去的,见最后面〕 需求分析 首先,用户输入猜想次数,游戏开场循环。 数字有四位,格式为: 1234 每次用户输入一个数字,游戏都会显示四个字符: A 代表数字和位置都正确 B 代表数字正确,但是位置不对 ?代表没有这个数字 比方: 假设要猜的数字是4321,用户输入4321,程序显示AAAA,用户获胜! 假设要猜的数字是4321,用户输入1234,程序显示BBBB 假设要猜的数字是4321,用户输入5674,程序显示???B 假设要猜的数字是4321,用户输入5678,程序显示???? 如果在给定次数内,用户猜对,那么用户胜利,游戏完毕; 如果在给定的次数里,用户没有猜到,那么用户失败,游戏完毕。 概要设计 采用封装函数的思想,将生成随机数、比拟用户输入结果分别封装成函数 游戏分成四个功能模块 生成四个随机数 用户输入猜想次数 用户猜数 显示猜想结果戏 总体流程图: 开场游戏 开场游戏 生成随机数 生成随机数 输入游戏次数 输入游戏次数 输入数字 输入数字 判断数字 N 判断数字 游戏次数是否用完 游戏次数是否用完 输出判断结果 输出判断结果 N 判断游戏是否成功 判断游戏是否成功 fail N success 输出结果 输出结果 Y 游戏完毕 游戏完毕 生成随机数流程图: 生成 生成1个随机数 判断是否跟已有随机数重复 判断是否跟已有随机数重复 重复 不重复 将随机数保存到 将随机数保存到S3 判断是否生成 判断是否生成4个随机数 N Y 比拟输入结果流程图: 判断一个字符是否在系统生成的 判断一个字符是否在系统生成的S3中 N 置 ‘ ?‘ 置 ‘ ?‘ 判断是否在对应下标 判断是否在对应下标 N 置 ‘B’ 置 ‘B’ 置 ‘ 置 ‘A’ 判断 判断4个字符是否比拟完 N Y 详细设计 输入数字,游戏次数 使用DOS功能调用来实现键盘输入。输入单个字符〔游戏次数〕用1号功能,输入字符串〔数字〕用9号功能。 生成随机数 读取时钟数值,进展运算得到随机数。 比拟结果 首先将输入的数字和生成的四位随机数进展比拟,按照要求输出判断结果;然后,判断游戏次数是否用完。 输出结果 按照要求输出结果,分游戏成功和游戏失败两种情况。 运行调试 源代码: DATA SEGMENT S3 DB 4 DUP(30H), :IS the random number. ,0AH,0DH,$ ;产生的4个数 NUM DB 5,0,5 DUP(?),0AH,0DH,$ ;输入缓冲区 RESULT DB AAAA,0AH,0DH,$ GUS DB 4 DUP(30H),0AH,0DH,$ ;用户输入的4个数 S1 DB Please input times from 1 to 9,0AH,0DH,$ S2 DB Please input random number,0AH,0DH,$ S4 DB Your input is wrong,0AH,0DH,$ FAIL DB You have no time, You lost the game!,0AH,0DH,$ WIN DB Congratulations! You succeed!,0AH,0DH,$ DATA ENDS STACK1 SEGMENT PARA STACK DB 10 DUP(0) STACK1 ENDS COSEG SEGMENT ASSUME CS:COSEG, DS:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX LEA SI,S3 CALL RANDOM ;调用封装的函数RANDOM产生随机数 ;-------显示系统生成的4个随机数-------- ;MOV DX,OFFSET S3 ;MOV AH,09H ;INT 21H ;-------提示输入猜想次数,并保存在BL-------- MOV DX,OFFSET S1 MOV AH,09H INT 21H MOV AH,01H ;输入次数 INT 21H SUB AL,30H MOV BX

文档评论(0)

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

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

1亿VIP精品文档

相关文档