汇编贪吃蛇课程设计附源码精品.docxVIP

  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,同时记100分,蛇的身子越吃越长,身子越长玩的难度就越大,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。2程序设计2.1程序分析程序初始化:加载在数据段定义好相关的提示信息以及储存蛇身的数组,主要是如何开始游戏的提示信息蛇的移动:程序的关键是表示蛇的图形以及蛇的移动。一开始用4个小矩形表示蛇的身体,每吃一个食物,身体增加一个矩形,移动时必须从蛇头开始,所以蛇不能向相反方向移动,蛇头的前进方向也就是蛇的方向,蛇尾不能改作蛇头。设置一个等待时间,如果不按任何按键,蛇在当前方向上前进。按了有效的方向键后,先确定蛇头的位置然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时由于没有清屏的原因,原来蛇的位置和新蛇的位置相差一个单位,所以看起来蛇会多一节身体。食物的产生:通过一系列运算产生在要求范围内的的随机数,此时的随机数便是随即点,可以通过产生的随即点的坐标画出随即点,也就是食物了。蛇吃食物: 蛇头的位置可以与随即点的位置坐标判断,如果此时两点的坐标是相同的,那么该食物被蛇吃掉,蛇的长度+1。判断游戏结束的条件: 当蛇的头部位置坐标与边界坐标重合或者蛇头的位置与自身相重合,游戏结束 暂停: 游戏过程中,按空格键可以使游戏暂停,在按空格键进入被暂停的游戏2.2游戏流程由程序分析知,该游戏是用方向键实现贪吃蛇的移动,游戏大概流程分为:游戏初始化(描绘围墙、蛇体、食物等及其颜色),游戏过程(通过四个方向键控制蛇头带动身体移动),游戏结束(显示总分并判断是否重新游戏)。2.3程序流程图2.4数据定义及重要函数数据定义及键盘扫描码 数据定义: Len db ? ;蛇的长度Body dw 200 dup(0) ;蛇的身体位置Direction dw 256Score db Score00000 ;得分snake_color db 0ah ;蛇颜色food_color db 0ch ;食物色speed db 0 ;速度gameover db 0 ;游戏结束标记Point db 0 ;得分数foodX dw ? ;食物坐标foodY dw ?seed dw 2 ;随即数种子键盘扫描码:LEFT EQU 4BhRIGHT EQU 4DhUP EQU 48hDOWN EQU 50hQUIT EQU 01hSPACE EQU 39h main函数 主函数首先加载定义好的数据,设置图形模式大小,调用显示开始提示信息的函数,中断等待用户按键输入,判断退出或开始游戏。进入游戏,重新设置图形模式,调用rec,clear_area,getfood,run_sanke函数分别打印边框,初始化蛇,随机食物,开始运动蛇。当蛇死亡时,中断,等待用户输入,根据用户的输入继续游戏或退出程序。main proc farmov ax , @datamov ds , axstart:mov ah , 00mov al , 12hint 10h ;设置图形模式640*480call show_start_msg ;显示开始提示信息call show_titlemov ah , 00hint 16h ;等待按键cmp ah , QUIT jz dos ;ESC则退出,否则进入游戏game_start:mov ah , 00 ;设置图形模式320*200,游戏在此模式下运行mov al , 13hint 10h mov cl , 7 ;边框颜色mov si , 59mov bx , 19Init_snake ;初始化蛇call getfood ;得到第一个食物call run_snake ;开始运动蛇mov dx , 1010h ;设置光标call SetGb ;设置光标位置mov bl , white ;显示死亡信息lea bp , msg3mov cx , 13call Msg ;显示字符串mov dx , 1605hmov bl , white ;显示提示信息lea bp , msg5mov cx , 29call Msgexit_loop:mov ah , 00hint 16h ;等待按键cmp ah , QUITjz startcmp ah , SPACEjz game_startjmp exit_loop ;返回开始dos:mov ah , 00mov al , 03int 10h ;设置文本模式mov ah , 4chint 21h ;退出到DOSmain endp Run_snake函数

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档