小游戏贪吃蛇的详细设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要
在我们空闲的时候,我们可以用一些我们学过的知识编一些东西,通过这些东西我们可以学习到汇编语言综合应用程序设计方法,还可以提高汇编语言实际应用能力,充分了解计算机硬件和软件,完成理论到实践的推进过程。这个程序就是用我所学过的汇编知识编的一个小游戏,这个游戏的程序主要就是用汇编宏和子程序的知识来编制而成的,我们用宏和子程序定义了很多的模块,模块也就是在我们的程序中直接可以调用的一个独立的程序。所以我们编写程序的时候可以很方便的用到它,所以那些基础知识也是我们编写程序的基础。关键词汇编贪吃蛇小游戏
前言
现在有的一些人感觉生活都是很无聊的,特别是我们这些学生,所以有些时候肯定会玩各种各样的游戏的,有一些大的游戏,玩起来会话掉很多的时间,而且也会花掉大量精力的,所以在一些闲暇的时候一些小游戏会博得很多人的喜爱,例如:俄罗斯方块,和一些格斗游戏等等。然而这些小游戏的设计方法和软件有很多,所以也有很多不同的效果,本篇设计是采用汇编中宏定义和调用,子程序的调用等一些汇编知识编制而成的一个贪吃蛇小游戏,通过这个小游戏的制作,我们可以得到很多的益处,一方面我们可以不在浪费平时的一些空闲的时间了,而热中于我们自己喜欢的游戏;另一个方面我们制作完游戏还可以给自己或者别人来享受一下,同时自己也会有一种成就感。特别当你用自己学到的知识制作出一个东西的时候,或者克服一个困难的时候你就会发现你自己的价值所在了,而且这还能促进你喜欢学习的念头。
目录
一、系统分析……………………………………………………………………
二、系统总体设计……………………………………………………………
三、详细设计……………………………………………………………………
1、窗口化程序……………………………………………………………
2、建立小蛇和食物………………………………………………………
3、初始对话框……………………………………………………………
4、小蛇和食物的位置………………………………………………………
5、分配内存空间……………………………………………………………
6、调整链表大小……………………………………………………………
四、系统测试……………………………………………………………………
1测试方案及用例…………………………………………………………
2.测试结果及软件可靠性分析……………………………………………
3.游戏规则……………………………………………………………………
五、软件使用说明书……………………………………………………………
六、设计总结……………………………………………………………………参考文献…………………………………………………………………………
致谢………………………………………………………………………………
程序清单………………………………………………………………………
一、系统分析
这个程序的总体的思想也就是主要用的就是宏和子程序的定义和调用,首先,定义了5个宏它们分别为:①屏幕初始化宏定义②在光标位置显示字符和属性定义③显示字符串宏定义④置光标位置宏定义⑤读光标位置的字符和属性宏定义。它们在程序中起到主要的作用。其次,就是子程序定义了,程序中定义了很多的子程序,其中有:①控制子程序②食物子程序,还有记分子程序等。它们首先被主程序调用,然后它们之间再互相调用,这样构成了完整的游戏程序并实现其功能。具体的设计思想是:第一,对数据进行初始化,即对寄存器的初始化,比如对食物的初始化等。第二,开始运行,判断是否符合条件,如果符合赢的条件的话,就会跳转到赢的那个子程序下,然后那个赢的子程序会调用记分的那个子程序,最后显示赢的信息和分数后再转到控制程序执行控制和其后的程序。如果要是输的话,就会跳转到输的那个子程序下,然后那个输的子程序也会调用记分的那个子程序,最后显示得分和信息。如果要是没有赢也没有输的话,那程序会跳到控制的子程序中,等控制完以后程序又会跳到程序判断的那个地方重复的执行。这个就是完成这个游戏程序的整个思想。
二、系统总体设计
这个程序完成的功能就是和别的游戏一样,最初,给出一个初始化的界面,和一个4个方块组成的小蛇,我们要把那个最初给出那个小蛇穿过那个闪烁的小红黄相间的小方块,然后那个小方块就会变成我们那个小蛇上的组成单元一样的一个小方块,和在别的地方会在出现另一个小方块,我们接下来要做的就是要把那个小方块穿过来,然后我们那个小蛇就会变长了,然后在穿过小方块,就这样重复的做就行了,随着你的穿过你的小蛇就会越来越长了,这是你的得分就会越高,同时你难度也会变大的,因为如果你要碰到四周的变的话,或者你自己的那个小蛇首尾要是相连的话你就会输了,所以当你那个小蛇很长的时候,难度自然就会变大了。
动画贪吃蛇程序的流程图
三.详细设计
1.窗口化程序
.data
ClassName db "DLGCLASS", 0;"snakeDlg",0
helpMsg db "Help: [Space]-Pause or Start | [Esc]-Exit | [Arrow]-Direction", 0
scoreMsg db "Length:%d", 0
gameover db "GAME OVER!", 0
BkgndClr dd 0000dd00h ;0x00bbggrr
statusWidth dd 280,350,-1
gSnake SnakeSt <>
2.建立小蛇和食物
InitBmp proc, hWnd:HWND
invoke GetDC, hWnd
mov hdc, eax
;蛇体画片
invoke CreateCompatibleDC, hdc
mov hSnkDC, eax
invoke LoadBitmap, hInstance, SnakeBmp
mov hSnkBmp, eax
invoke SelectObject, hSnkDC, eax
;食物画片1
invoke CreateCompatibleDC, hdc
mov hFdDC1, eax
invoke LoadBitmap, hInstance, FdBmp1
mov hFdBmp1, eax
invoke SelectObject, hFdDC1, eax