html+css部分

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>body {background: #000;}#board {margin: 0 auto;width: 300px;text-align: center;}#container {width: 1000px;height: 540px;border: 1px solid #777;margin: 0 auto;background: lightblue;position: relative}.snake {position: absolute;width: 20px;height: 20px;background: greenyellow;}.egg {position: absolute;width: 20px;height: 20px;background: rgba(224, 29, 29, 0.726);}h3 {color: #ccc}</style>
</head><body onload="gameRun()"><div id="board"><h3 id="score">SCRAT: 0</h3></div><div id="container"></div>
</body></html>
<script src="index.js"></script>

js部分

var isAlive = true;
var snakes = [];
var egg = null;
var isFirst = true;
var panel = document.getElementById('container')
var scoreBoard = document.getElementById('score')
var score = 0;
var timer = 0;var DIR = {L: 1,R: 2,U: 3,D: 4
}function snake(top, left, dir) {this.top = top;this.left = left;this.dir = dir
}function newEgg(top, left) {this.top = top;this.left = left;
}function gameRun() {if (isFirst) {snakes.push(new snake(40, 40, DIR.D))createEgg();isFirst = false}sankeRun()display()
}function createEgg() {egg = new newEgg(Math.floor(Math.random() * 27) * 20,Math.floor(Math.random() * 45) * 20)
}document.onkeydown = function(e) {var header = snakes[snakes.length - 1];switch (e.keyCode) {case 37:if (header.dir != DIR.R) {header.dir = DIR.L}break;case 38:if (header.dir != DIR.D) {header.dir = DIR.U}break;case 39:if (header.dir != DIR.L) {header.dir = DIR.R}break;case 40:if (header.dir != DIR.U) {header.dir = DIR.D}break;default:break;}
}function sankeRun() {var header = snakes[snakes.length - 1];var newHeader = null;switch (header.dir) {case DIR.L:newHeader = new snake(header.top, header.left - 20, header.dir)break;case DIR.R:newHeader = new snake(header.top, header.left + 20, header.dir)break;case DIR.U:newHeader = new snake(header.top - 20, header.left, header.dir)break;case DIR.D:newHeader = new snake(header.top + 20, header.left, header.dir)break;}deathCheck(newHeader)if (isAlive) {snakes.push(newHeader);if (newHeader.top == egg.top && newHeader.left == egg.left) {createEgg();} else {snakes.shift()}} else {clearInterval(timer)}
}function deathCheck(header) {// var header = snakes[snakes.length - 1];if (header.top < -10 || header.top > 535 || header.left < -10 || header.top > 990) {isAlive = false;return;}for (let i = 0; i < snakes.length; i++) {if (header.top == snakes[i].top && header.left == snakes[i].left) {isAlive = false;return;}}
}function display() {var arrColors = ["red", "yellow", "blue", 'blueviolet', 'chartreuse','chocolate', 'crimson', 'darkgoldenrod', 'darkslateblue']var numColors = parseInt(Math.random() * arrColors.length)if (isAlive) {if (score != snakes.length) {score += 1score = snakes.length + 1;scoreBoard.innerHTML = 'Score: ' + score;}} else {scoreBoard.style.color = "red";scoreBoard.innerHTML = "游戏结束, 你太弱了,才 : " + score;}var fragment = document.createDocumentFragment();for (let i = 0; i < snakes.length; i++) {var div = document.createElement('div')div.className = 'snake';div.style.top = snakes[i].top + 'px'div.style.left = snakes[i].left + 'px'div.style.backgroundColor = arrColors[numColors]fragment.appendChild(div)}var ediv = document.createElement('div')ediv.className = 'egg'ediv.style.backgroundColor = arrColors[numColors]ediv.style.top = egg.top + 'px';ediv.style.left = egg.left + 'px'fragment.appendChild(ediv)panel.innerHTML = ''panel.appendChild(fragment)
}// gameRun()
timer = setInterval(gameRun, 100)

(幻彩)贪吃蛇游戏设计源码相关推荐

  1. c语言贪吃蛇游戏编程视频教程,C语言贪吃蛇游戏精典源码 - 视频教程 - VC中文网-VC-MFC编程论坛 - Powered by Discuz!...

    19f700059b660539d5dc (38.08 KB, 下载次数: 0) 2017-11-14 16:28 上传 C语言贪吃蛇游戏精典源码 19f500058fe8fcaf675a (2.98 ...

  2. 涂格子游戏html,网页版方格贪吃蛇游戏html源码分享

    html源码,要做网页的话复制源码新建一个文本文档粘贴进去,然后文本文档改名snake.html即可. 体验地址:点击进入 玩法:用键盘的上下左右控制. 贪吃蛇-陌涛博客www.imotao.com ...

  3. JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二)

    目录 JAVA课程设计(小游戏贪吃蛇)完整源码附素材(一) JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二) JAVA课程设计(小游戏贪吃蛇)完整源码附素材(三) 前言 1. 任务描述 1.1  ...

  4. java毕业设计——基于java+J2ME的贪吃蛇游戏设计与实现(毕业论文+程序源码)——贪吃蛇游戏

    基于java+J2ME的贪吃蛇游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+J2ME的贪吃蛇游戏设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下载开题报告P ...

  5. python贪吃蛇源码_Python:游戏:贪吃蛇(附源码)

    Python:游戏:贪吃蛇(附源码) 发布时间:2018-09-05 09:59, 浏览次数:1295 , 标签: Python 贪吃蛇是个非常简单的游戏,适合练手. 首先分析一下这个游戏 1.蛇怎么 ...

  6. 基于verilog贪吃蛇游戏设计

    概述 基于verilog贪吃蛇游戏设计.使用verilog语言 小游戏主要分为以下几个模块:顶层模块.VGA显示模块.蛇身控制模块.苹果控制模块. 系统主要分为顶层模块.VGA显示模块.蛇身控制模块. ...

  7. 【STM32单片机】贪吃蛇游戏设计

    文章目录 一.主要功能 二.硬件资源 1.硬件准备 2.硬件连接 四.软件设计 1.软件结构 2.主要代码 五.实验现象 联系作者 一.主要功能 系统运行后,TFTLCD触摸屏显示游戏界面,通过按键任 ...

  8. 字符版本贪吃蛇游戏设计及算法

    字符版本贪吃蛇游戏设计及算法 贪吃蛇,是一款经典的益智游戏.我们可以通过算法捕捉和传递智能,设计出能自动跑着吃食物的智能蛇. 有不少人对此研究,设计出了很棒的算法,如图: 归纳一些比较高级的算法为三类 ...

  9. Qt小游戏教程之贪吃蛇(带源码)

    #1.内容介绍 Qt小游戏开发系列将为大家带来几个用Qt设计可发的几款简单小游戏(贪吃蛇.俄罗斯方块.黑白棋.扫雷).今天将为大家带来的是贪吃蛇游戏的设计思路详解以及代码实现,本博客适用于有一定Qt基 ...

最新文章

  1. usaco Magic Squares
  2. 遍历系统的所有ObjectType和TypeIndex
  3. python基础教程视频教程百度云-Python零基础入门学习视频教程全42集百度云网盘下载...
  4. Java的知识点14——内部类的概念、内部类的分类
  5. javaSE各阶段练习题--初识Java章节
  6. 面向对象风格的合理架构
  7. 理解java虚拟机有什么用_java虚拟机的作用是什么?我们为什么要用虚拟机?
  8. C++面试题-面向对象-静态成员变量以及静态成员函数
  9. 日志分析里面的max是什么_mysql慢日志文件分析处理
  10. 20191026每日一句
  11. paip.版本控制CVS-SVN-TFS总结
  12. 优质前端掘金小册推荐及优惠购买链接
  13. mybatis分页插件 pagehelper点击末页跳到第8页
  14. GTP协议循序渐进(三)----通过实例了解TEID
  15. 匈牙利算法python实现
  16. 关于Pearson相关系数的显著性p值如何计算以及背后原因的思考
  17. 解决登录雅虎邮箱提示您在所用浏览器上启用Javascript 功能
  18. 教你轻松查看QQ空间加密后的好友图片
  19. 游戏盾能防住几T的攻击吗
  20. Flutter 使用自定义 fluro 路由转场动画实现个性化页面切换

热门文章

  1. Python3使用turtle画一个十边形
  2. 计算机软件支持七天无理由,我闲鱼年初卖了一台笔记本电脑,闲鱼平台明确不支持七天无理由退货,我也明确写明非硬件问题不退不换依据什么法律。...
  3. 统计学习-机器学习方法概论
  4. CentOS7.6安装vmtools
  5. JQ 点击头像更换图片(仅是自己留个笔记,不建议参考哈!)
  6. 面试遭遇六种情况赶紧跑
  7. 动态规划学习(Python)
  8. 【记录】Android关于WebView无/有图模式切换实现方案
  9. linux mysql 数据恢复_记一次MySQL删库的数据恢复
  10. github上值得推荐的大神