- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《Web程序设计》
开放实验报告
目录
TOC \o 1-3 \h \z \u 一、 实验目的 3
二、 实验概述 3
三、 实验环境 3
四、 实验内容 3
贪吃蛇 3
1. 代码解释 3
2. 实际运行效果 5
五、 实验总结 6
(一) 完成目标 6
(二) 实验收获 6
六、 附录 6
(一) 实验代码 6
实验目的
运用web程序设计有关知识详细解读游戏“贪吃蛇”的实现过程,并将游戏改编、加工。
实验概述
小组先在网络上选择了一款“贪吃蛇”的小游戏,运用所学知识对小游戏的实现过程进行了详细的解读,将其做了一定改编,并通过图像处理将游戏“定制”。
实验环境
Windows10 64位、Chrome浏览器
实验内容
贪吃蛇
代码解释
游戏的背景界面设置:
以下是游戏主题部分:
以20px*20px为一个方格,组成20行20列的方阵,总共400格,然后绿色填充的格子表示蛇身,用黄色表示食物。
这400个格子和数字0~399一一对应,对应的方式就是以20作为基数,n / 20再取整表示第几行,n % 20表示第几列。行数和列数都用0~19表示。
蛇用一个一维数组表示,每个值都是这400个数中的一个,用var snake = [41, 40],初始化这条蛇,索引0为蛇头。food表示食物的位置,direction表示蛇头下一次运动的转向。
蛇的运动就用添加和删除数组元素来实现,每次执行绘制蛇头,去掉蛇尾,循环执行使蛇运动。
这是立即执行函数的一种写法。给蛇头添加一个节点n,其值为当前蛇头的值加direction的值。
下一行是一个if语句,这个语句就是判断即将出现的蛇头是不是属于蛇身,或者跑到box外边去了。
如果没有死亡,就把这个蛇头绘制出来,这是绘制的代码:
填充时填充18*18的像素,留1px边框。
box.fillRect()中第一个参数就是要绘制的矩形的x坐标seat % 20 *20 + 1,即先得到所要绘制的矩形块在方阵中的位置:
第(seat / 20)行,第seat % 20列,再* 20 + 1具体到像素点。
第47行是一个判断语句,判断下次蛇头出现的位置是不是和当前的食物的位置相同:
如果相同,生成下一个食物,食物的位置为一个随机数,但是要判断这个点不是出现在当前的蛇身上,绘制食物。
如果没有吃到食物,即蛇在正常运动时,每向前一次,将蛇尾弹出,并利用其返回值将这个点重新绘制为黑色。
最后的setTimeout,循环执行当前函数,设置执行周期来调蛇的移动速度。
前边的判断语句又可分为两部分:
snake[1] - snake[0]的值应该就是-direction。由于玩家可能在一个函数周期中多次改变direction的值,最后使得direction和当前真正的运动方向不一致,导致游戏崩溃。
在==后边, [-1, -20, 1, 20][(evt || event).keyCode - 37]中前边的[]是一个数组,后边的[]是取索引,左上右下四个键的keyCode分别为37, 38, 39, 40,计算后的索引为0, 1, 2, 3,使方向键与direction的取值对应起来。于如果按下的按键不是方向键,在数组中将得不到对应的值,返回undefine。此时,由于之后的||运算符,n会取到direction原来的值。
实际运行效果
游戏开始
游戏结束
实验总结
完成目标
完成了对游戏“贪吃蛇”的解读
实现了对游戏“贪吃蛇”的修改
实验收获
加深掌握了html各标签及各属性的作用及运用
加深掌握了JavaScript语言结构及设计
加深了对CSS的理解和使用
能初步完成简单的html页面、程序设计
增强了HTML、JavaScript文件的理解能力
附录
实验代码
!DOCTYPE html
html lang=en
head
meta charset=UTF-8
title贪吃蛇重构/title
style
body {
display: flex;
height: 100vh;
margin: 0;
padding: 0;
justify-content: center;
align-items: center;
}
/style
/head
body
canvas id=can width=400 height=400 style=background-color: black对不起,您的浏览器不支持canvas/canvas
script
var snake = [41, 40], //snake队列表示蛇身,初始节点存在但不显示
direction
您可能关注的文档
- 辩证法-难以阻挡的社会多元化洪流.pptx
- 电力系统实验报告.docx
- 发电厂电气第二章载流导体的发热和电动力.pdf
- 发电厂电气第六章配电装置与电力变压器运行.pdf
- 发电厂电气第三章灭弧原理及主要开关电器.pdf
- 发电厂电气第四章电气主接线及其设计.pdf
- 发电厂电气第五章导体和电气设备的原理与选择.pdf
- 国家安全问题透视-美国科技巨头的强势.pptx
- 目前废旧塑料处理的主要方法.docx
- 欧洲浪漫主义音乐鉴赏论文.docx
- 湖南省岳阳市2025届高三上学期教学质量监测(一)日语试题 含答案.docx
- 广东省惠州市2024-2025学年高一上学期期末考试英语试题 含解析.docx
- 湖北云学名校联盟2024-2025学年高二上学期期末考试英语试题 含解析.docx
- 王老师 20240827奥数-植树问题 - 学生版.doc
- 备战2025年高考二轮复习易错题(新高考专用) 化学 易错类型05 化学计量(5大易错点) 含解析.docx
- 湖北省新高考2024-2025学年高二上学期联考日语试题 含解析.docx
- 年消防月主题活动方案启动及全员消防安全知识培训-课件2.ppt
- 第一部分:化工危化品企业常见隐患清单.ppt
- 防范工贸行业典型事故三十条措施解读-T.ppt
- 港口安全应急知识培训.ppt
文档评论(0)