(幻彩)贪吃蛇游戏设计源码

news/2025/2/19 4:07:40/

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)

http://www.ppmy.cn/news/233870.html

相关文章

开启python之旅——幻彩螺旋

幻彩螺旋 import turtle as t t.reset() t.screensize(800,800,‘black’) t.pensize(2) t.speed(‘fastest’) colors[‘yellow’,‘red’,‘green’,‘purple’] for x in range(200): t.fd(2*x) t.color(colors[x%4]) t.lt(89) t.hideturtle() t.done() 进阶版 import turt…

幻彩灯 html5,WS2811幻彩灯程序

/**************************************************************************************** * WS2811 彩灯驱动函数 * * 调用方法: * 修改宏定义: #define nWs 1 // 有多少颗WS2811级联 * WS_Init(); // IO初始化 * WsDat[0] = 0x808…

蔡徐坤团队获得”微博年度最佳团体“!vivo X23幻彩版却实力抢眼

如今似乎每一款旗舰手机都会有一个代言人&#xff0c;毕竟代言人的巨大流量能够为对应的旗舰手机带来很多热点。而说到手机的代言人&#xff0c;我想蔡徐坤或许大家都知道吧&#xff0c;作为vivo x23的代言人&#xff0c;蔡徐坤着实为这款手机带来了极大的流量&#xff0c;昨天…

windows系统管理手机拍摄的大量照片

Picasa Picasa只要掌握四个功能&#xff0c;就已经能数量级提升管理照片的效率了。 1、相册&#xff08;都是虚拟的&#xff0c;不改变原始文件位置&#xff0c;随便按需创建、删除吧&#xff09;。2、人物&#xff08;识别率超高&#xff0c;轻松管理几千张照片&#xff09;。…

人脸识别终端一体机(Android)人脸识别一体机

人脸识别终端一体机&#xff08;Android&#xff09;人脸识别一体机 安卓&#xff08;Android&#xff09;人脸识别终端一体机是定位为一款功能丰富&#xff0c;扩展性强&#xff0c;稳定性高&#xff0c;简单维护的人脸识别一体机。人脸识别一体机它集于人脸比对算法及人脸识…

ocr识别技术-车牌识别一体机的核心关键

关键核心 车牌识别一体机、车牌识别相机、ocr车牌识别 车牌识别相机的应用背景 随着智慧城市的建设&#xff0c;智慧停车场概念进入了大家的视野。传统的停车场管理主要通过给进入停车场的车辆分发IC卡&#xff0c;容易被复制盗用&#xff0c;容易丢失&#xff0c;缺乏智能、造…

当全能明星“邂逅”惠普激光一体机

篮球和惠普激光一体机也有交集?如果在十年前或许很少见&#xff0c;但在跨界合作此起彼伏的今天也就见怪不怪了&#xff0c;不过此次活动的确让人耳目一新。笔者在上周六(7月2日)就刚刚参加了一场惠普智能打印机和全明星篮球赛的跨界活动&#xff0c;该活动有三大特色&#xf…

一体机(广告投放机)开发

序言 当今社会广告随处可见&#xff0c;广告展现在大家面前也各尽不同&#xff0c;如电视、报纸、网络、车站、公车等等应有尽有&#xff0c;广告是无处不在&#xff0c;如不想见到广告那就不要出门、不要打开电脑手机、这样或许能暂时看不到广告。从这可见广告在人们生活中起到…