您好,欢迎访问三七文档
课程设计任务书学生姓名:专业班级:自动化1004班指导教师:工作单位:自动化学院题目:猜数字游戏程序设计要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.猜数字游戏程序设计随机产生一个0至149的数字(不显示),输入猜测数字,程序提示和所猜数字大小,直至正确,猜数正确后显示猜数的次数,程序采用汇编语言在PC机上完成。2.画出简要程序流程图,编写程序。3.撰写课程设计说明书。内容包括:摘要、目录、正文、参考文献、附录(程序清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。时间安排:2012年12月30日-----12月31日查阅资料及方案设计2013年01月01日-----01月05日编程2013年01月06日-----01月08日调试程序2013年01月09日-----01月10日撰写课程设计报告指导教师签名:20年01月11日系主任(或责任教师)签名:年月日目录摘要..............................................................................................................................................11汇编语言基础............................................................................................................................21.1汇编语言简介...................................................................................................................21.2汇编语言特点...................................................................................................................22设计原理分析............................................................................................................................32.1随机数的产生...................................................................................................................32.2子模块...............................................................................................................................32.3设计流程图.......................................................................................................................43子程序分析................................................................................................................................53.1RAN的主要算法..............................................................................................................53.2INPUT的主要算法..........................................................................................................53.3ENTER的主要算法.........................................................................................................64源程序........................................................................................................................................74.1程序代码...........................................................................................................................74.2程序运行截图.................................................................................................................13心得体会......................................................................................................................................15参考文献......................................................................................................................................163摘要该程序为玩家提供猜数字游戏的基本功能。当用户选择开始游戏时,系统会在内部产生对应范围内的随机数,以供用户进行猜测,用户每次猜数字后系统会给出本次猜数字的结果提示,先比较用户猜测数字是否等于系统产生的随机数,若相等则提示用户猜数字成功。如果用户猜测数字不等于系统产生的随机数,则提示该数字与随机数比较时大了还是小了,并输出比较结果,同时记录当前用户猜测的次数。直至用户成功猜中随机数。关键词:随机数的产生余数41汇编语言基础1.1汇编语言简介汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语合中,用助记符代替操作码,用地址符号或标号代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为人们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。1.2汇编语言特点1.面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。2.保持了机器语言的优点,具有直接和简捷的特点。3.可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。4.目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。5.经常与高级语言配合使用,应用十分广泛。52设计原理分析2.1随机数的产生真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的。而计算机中的随机函数是按照一定算法模拟产生的,其结果是确定的,是可见的,这样可以认为这个可预见的结果其出现的概率是100%。所以用计算机随机函数所产生的“随机数”并不随机,是伪随机数。此程序的关键问题是如何产生一个1~100之间的随机整数(本程序中所涉及的数均指整数,以下不再赘述)。可以调用BIOS的功能调用1AH号中断(MOVAH,0INT1AH)或者调用DOS系统功能调用21H号中断(MOVAH,2CHINT21H)取系统时间,DH:DL=秒:1/100秒。将DX中的内容赋给AX,并将AX的高六位清零,然后AX除以150,则会产生0~149之间的余数。2.2子模块本程序共分为六个模块:MAIN-------程序的入口点,程序运行后在DOS屏幕上显示主菜单,给出相关的操作提示,并调用RAN、GUESS、ENTER等子程序。RAN-------调用相关的中断,取系统时间,产生一个0~149之间的随机数。GUESS------本程序的重要模块,调用INPUT、PRINT、ENTER等子程序。INPUT------用于玩家输入其所猜之数,并给出相关的输入提示。PRINT------用于游戏结束时输入系统所产生的随机数。ENTER-------用于回车换行62.3设计流程图设计流程图如图2-1所示。定义语句设置游戏界面产生随机数数值判断相等计数计数大于小于开始结束录入猜测值图2-1设计流程图73子程序分析3.1RAN的主要算法RANPROCNEARPUSHAXPUSHDXMOVAH,0;读时钟计数器值INT1AHMOVAX,DXANDAH,3;将高6位清零MOVDL,150;除以150,产生0~149余数,余数在AH中DIVDLMOVAL,AHMOVAH,0MOVRANDOM,AX;将随机数保存于RANDOM中MOVAH,09HLEADX,MESS2INT21HCALLNEARPTRENTERPOPDXPOPAXRETRANENDP3.2INPUT的主要算法INPUTPROCNEARMOVBX,0INL1:MOVAH,01HINT21HCMPAL,0DHJZINEXITCMPAL,30HJAEINL2CMPAL,08HJEINL1CALLNEARPTRENTERMOVAH,09HLEADX,MESS9INT21HINL2:CMPAL,39HJBEINL3CALLNEARPTRENTER8MOVAH,09HLEADX,MESS9INT21HJMPINL1INL3:ANDAL,0FHMOVAH,0XCHGBX,AXMOVCX,10MULCXADDBX,AXJMPINL1INEXIT:MOVINNUM,BXRETINPUTENDP3.3ENTER的主要算法ENTERPROCNEARPUSHAXPUSHDXMOVAH,02HMOVDL,0DHINT21HMOVDL,0AHINT21HPOPDXPOPAXRETENTERENDP94源程序4.1程序代码DATASEGMENTRANDOMDW?;用于保存产生的随机数INNUMDW?;用于保存玩家输入的数JISHUDW0;用于保存玩家猜数的次数MENUDW0DB0DH,0AH,*----------------------------------------------------*DB0DH,0AH,**DB0DH,0AH,*MAINMENU*DB0DH,0AH,**
本文标题:猜数字游戏程序设计
链接地址:https://www.777doc.com/doc-4136303 .html