汇编贪吃蛇课程设计附源码.docx

汇编贪吃蛇课程设计附源码.docx

ID:55135409

大小:71.12 KB

页数:38页

时间:2020-04-28

汇编贪吃蛇课程设计附源码.docx_第1页
汇编贪吃蛇课程设计附源码.docx_第2页
汇编贪吃蛇课程设计附源码.docx_第3页
汇编贪吃蛇课程设计附源码.docx_第4页
汇编贪吃蛇课程设计附源码.docx_第5页
资源描述:

《汇编贪吃蛇课程设计附源码.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、目录1程序简介12程序设计12.1程序分析程序初始化:12.2游戏流程22.3程序流程图32.4数据定义及重要函数43系统测试及改进123.1程序测试123.2系统改进144源码151程序简介贪吃蛇游戏是一个经典小游戏,在封闭的围墙里面,通过键盘的上下左右控制蛇的方向,寻找随机出现的食物。蛇头撞到食物,则食物被吃掉,蛇身体长度+1,同时记100分,蛇的身子越吃越长,身子越长玩的难度就越大,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。2程序设计2.1程序分析程序初始化:加载在数据段定义好相关的提示

2、信息以及储存蛇身的数组,主要是如何开始游戏的提示信息蛇的移动:程序的关键是表示蛇的图形以及蛇的移动。一开始用4个小矩形表示蛇的身体,每吃一个食物,身体增加一个矩形,移动时必须从蛇头开始,所以蛇不能向相反方向移动,蛇头的前进方向也就是蛇的方向,蛇尾不能改作蛇头。38设置一个等待时间,如果不按任何按键,蛇在当前方向上前进。按了有效的方向键后,先确定蛇头的位置然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时由于没有清屏的原因,原来蛇的位置和新蛇的位置相差一个单位,所以看起来蛇会多一节身体。食物的

3、产生:通过一系列运算产生在要求范围内的的随机数,此时的随机数便是随即点,可以通过产生的随即点的坐标画出随即点,也就是食物了。蛇吃食物:蛇头的位置可以与随即点的位置坐标判断,如果此时两点的坐标是相同的,那么该食物被蛇吃掉,蛇的长度+1。判断游戏结束的条件:当蛇的头部位置坐标与边界坐标重合或者蛇头的位置与自身相重合,游戏结束暂停:游戏过程中,按空格键可以使游戏暂停,在按空格键进入被暂停的游戏2.2游戏流程由程序分析知,该游戏是用方向键实现贪吃蛇的移动,游戏大概流程分为:游戏初始化(描绘围墙、蛇体、食物等及其颜色

4、),游戏过程(通过四个方向键控制蛇头带动身体移动),游戏结束(显示总分并判断是否重新游戏)。382.3程序流程图382.4数据定义及重要函数数据定义及键盘扫描码数据定义:Lendb?;蛇的长度Bodydw200dup(0);蛇的身体位置Directiondw256Scoredb'Score00000';得分snake_colordb0ah;蛇颜色food_colordb0ch;食物色speeddb0;速度gameoverdb0;游戏结束标记Pointdb0;得分数foodXdw?;食物坐标foodYdw?s

5、eeddw2;随即数种子38键盘扫描码:LEFTEQU4BhRIGHTEQU4DhUPEQU48hDOWNEQU50hQUITEQU01hSPACEEQU39hmain函数主函数首先加载定义好的数据,设置图形模式大小,调用显示开始提示信息的函数,中断等待用户按键输入,判断退出或开始游戏。进入游戏,重新设置图形模式,调用rec,clear_area,getfood,run_sanke函数分别打印边框,初始化蛇,随机食物,开始运动蛇。当蛇死亡时,中断,等待用户输入,根据用户的输入继续游戏或退出程序。mainpr

6、ocfarmovax,@datamovds,axstart:movah,00moval,12hint10h;设置图形模式640*480callshow_start_msg;显示开始提示信息callshow_titlemovah,00hint16h;等待按键cmpah,QUITjzdos;ESC则退出,否则进入游戏game_start:movah,00;设置图形模式320*200,游戏在此模式下运行moval,13hint10hmovcl,7;边框颜色movsi,59movbx,19Init_snake;初始

7、化蛇callgetfood;得到第一个食物callrun_snake;开始运动蛇movdx,1010h;设置光标callSetGb;设置光标位置movbl,white;显示死亡信息leabp,msg3movcx,1338callMsg;显示字符串movdx,1605hmovbl,white;显示提示信息leabp,msg5movcx,29callMsgexit_loop:movah,00hint16h;等待按键cmpah,QUITjzstartcmpah,SPACEjzgame_startjmpexit_l

8、oop;返回开始dos:movah,00moval,03int10h;设置文本模式movah,4chint21h;退出到DOSmainendpRun_snake函数蛇一开始默认向右运动,当按下空格键时游戏暂停,再按空格键游戏开始。用INT 10H的1号功能检测是否有按键输入,改变蛇头前进的方向,没有保持当前的前进方向。在蛇运动过程中,不断检查是否撞墙或蛇头触碰到蛇身,如果是,跳转到stop,提示重新或退出。当检查

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。