网站大量收购独家精品文档,联系QQ:2885784924

web程序设计-贪吃蛇.docxVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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

您可能关注的文档

文档评论(0)

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

计算机研究者

1亿VIP精品文档

相关文档