- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言与接口技术课程设计实验报告-基于汇编的贪食蛇游戏
实验目的:
本次实验是汇编语言与接口技术这门课程的综合试验。目的是熟练掌握并能综合应用所学的汇编语言与接口技术,同时也熟悉了汇编语言的程序的调试方法,发现并纠正了平时编写汇编程序时一些不好的习惯,养成了较好的编程习惯,同时在实践中加深对这门课程的理解,也为后面进一步的学习以及实验打下扎实的基础。
实验环境
Masm for Windows 集成实验环境
实验内容
用所学的汇编语言与接口技术的知识,用汇编语言编写一贪
食蛇的游戏。
实验要求:贪吃蛇能正常运动;
贪吃蛇能够有指定的四个方向键控制方向;
贪吃蛇吃掉豆子能自动加分;
贪吃蛇能够在碰到边界死亡;
其余可以根据自己的想法扩展功能;
。
实验步骤与调试方法
程序初始化部分:
在数据段定义好相关的提示信息以及储存蛇身的数组,主要有游戏之前的提示信息,游戏之中的相关输出信息,例如得分等。
画点部分:
屏幕显示采用320*200的图形16色显示模式,点的画出采用写像素的方式,每个点占用4*3像素。
同蛇移动程序:
采用不断刷屏的方式,通过延迟,程序没执行一次,蛇便会在相应的方向往前移动一个格。此时可以通过记录蛇头位置并重画擦屏的方式显示出蛇身的新位置。
蛇的位置重置:
由于蛇是不断运动的,此时可以采用将新的蛇身的位置覆盖原先的数组。
随即豆的产生:
利用系统时间的变化,根据秒和百分之一秒的部分,此时可以通过一系列运算产生在要求范围内的的随机数,此时的随机数便是随即点,可以通过产生的随即点的坐标画出随即点。
蛇吃食物:
当蛇头的位置可以与随即点的位置坐标判断,如果此时两点的坐标是相同的,那么便可以将此时的食物点加到蛇头位置上。
判断游戏结束的条件:
当蛇的头部位置到达边界或者蛇头的位置与自身相重合,那么变产生结束的条件了。
源程序清单、测试数据、运行结果
.model small
.stack 200
.data
Len db ? ;蛇的长度
Body dw 200 dup(0) ;蛇的身体位置
Direction dw 256
Score 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 ;随即数种子
;******************************************************************************************
;显示方面的参数
topline dw 20 ;上边界
leftline dw 60 ;左边界
cut_x dw 4 ;每格宽
cut_y dw 3 ;每格长
max_x dw 49 ;最大格数(横)
max_y dw 49 ;最大格数(纵)
msg1 db Greedy Snakes
msg2 db by:tangxing
msg3 db Game is over!
msg4 db Press any key for start! Esc for exit
msg5 db ESC for back, Space for retry
msg6 db press space for pause/continue
msg7 db
title1 db 6 dup(20h), 5 dup(0dch), 5 dup(20h) ,5 dup(0dch), 5 dup(20h)
title2 db 6 dup(20h), 0dbh,3 dup(20h),0dbh,5 dup(20h),0dbh,3 dup(20h),0dbh ,5 dup(20h)
title3 db 6 dup(20h), 0dbh,3 dup(20h),0dbh,5 dup(20h) ,0dbh,3 dup(20h),0dbh,5 dup(20h)
title4 db 7 dup(0dfh), 3 dup(20h),7 dup(0dfh), 3 dup(20h),5 dup(0dfh),0fdh
yello db 0eh
green db 02h
white db 0fh
blue db 01h
;*******************************************
文档评论(0)