下载资源前端资源详情
贪吃蛇.zip
大小:168.54KB
价格:33积分
下载量:0
评分:
5.0
上传者:qq_74794797
更新日期:2025-09-22

贪吃蛇网页小游戏,有排名

资源文件列表(大概)

文件名
大小
贪吃蛇/
-
贪吃蛇/代码/
-
贪吃蛇/代码/eatFruit.mp3
85.98KB
贪吃蛇/代码/game.html
5.36KB
贪吃蛇/代码/gameOver.mp3
82.92KB
贪吃蛇/代码/record.html
4.12KB
贪吃蛇/代码/为游戏添加音效.html
4.09KB
贪吃蛇/代码/录入分数.html
1.61KB
贪吃蛇/代码/显示分数.html
1.14KB
贪吃蛇/代码/绘制单个果实.html
986B
贪吃蛇/代码/绘制贪吃蛇.html
1.31KB
贪吃蛇/代码/网格系统绘制.html
547B
贪吃蛇/代码/贪吃蛇吃果实.html
3.21KB
贪吃蛇/代码/贪吃蛇吃自己游戏结束.html
3.57KB
贪吃蛇/代码/贪吃蛇移动.html
2.05KB
贪吃蛇/代码/贪吃蛇转向.html
2.75KB

资源内容介绍

贪吃蛇网页小游戏,有排名
<!DOCTYPE HTML><html lang="en-US"><head><meta charset="UTF-8"><title></title></head><body><canvas id="snakegame" width="400px" height="400px" style="border:black solid 2px;"></canvas><h2>分数</h2><h2 id="sc">0</h2><button id="rank" onclick="rankPage()">排行榜</button><audio src="eatFruit.mp3" id="eatFruit"></audio><audio src="gameOver.mp3" id="gameOver"></audio><script>var myCanvas = document.getElementById("snakegame");var context = myCanvas.getContext("2d");//为键盘按下事件设置事件监听,并指定事件处理函数keyPush()document.addEventListener("keydown",keyPush);//全局变量//控制setIntervalvar t;//游戏分数记录var score;//果实位置var xFruit;var yFruit;//蛇var trail;var xHead;var yHead;var snakeLen;//蛇在xy两个方向的移动速度var vx;var vy;//方向键键盘码var left = 37;var up = 38;var right = 39;var down = 40;//键盘事件的事件处理函数,通过方向键实现方向的转变function keyPush(e){switch(e.keyCode){case left:if(vx != 1 && vy != 0){vx=-1;vy=0;}break;case up:if(vx != 0 && vy != 1){vx=0;vy=-1;}break;case right:if (vx != -1 && vy != 0){vx=1;vy=0;}break;case down:if (vx != 0 && vy != -1){vx=0;vy=1;}break;}}//填充单个网格(x,y)function paintCell(x,y){context.fillRect((x-1)*20+1,(y-1)*20+1,18,18);}//以红色绘制果实function paintFruit(){context.fillStyle = "red";paintCell(xFruit,yFruit);}//随机设定果实位置function randomFruit(){xFruit = Math.floor((Math.random()*1000))%20 + 1;yFruit = Math.floor((Math.random()*1000))%20 + 1;paintFruit();}//以绿色绘制贪吃蛇function paintSnake(){context.fillStyle = "lime";for (var i=0; i<trail.length;i++){paintCell(trail[i].x, trail[i].y);}}//初始化蛇function initSnake(){//初始化游戏分数score = 0;trail = [];xHead = 10;yHead = 10;vx = 1;vy = 0;snakeLen = 3;for (var i=0;i<snakeLen;i++){trail.push({x:xHead+i-2,y:yHead});}randomFruit();//初始化时,添加果实paintSnake();}//清空画布function refreshCanvas(){context.clearRect(0,0,myCanvas.width,myCanvas.height);}//移动蛇function moveSnake(){//蛇下一时刻的头部坐标xHead = (vx+xHead+19)%20+1;yHead = (vy+yHead+19)%20+1;//在蛇移动之后检查是否吃到自己selfEat();//将新的头部坐标添加入trailtrail.push({x:xHead,y:yHead});//将尾部的坐标移除数组while (trail.length > snakeLen){trail.shift();}//判断是否吃到果实eatFruit();//清空画布refreshCanvas();//重新绘制蛇paintSnake();//重新绘制果实paintFruit();}//判断贪吃蛇是否吃了果实function eatFruit(){if (xHead == xFruit && yHead == yFruit){fruitEatingSound();score += 100;var s = document.getElementById("sc");s.innerText = score;randomFruit();snakeGrow();}}//蛇在吃果实之后变长function snakeGrow(){snakeLen++;xHead = (vx+xHead+19)%20+1;yHead = (vy+yHead+19)%20+1;trail.push({x:xHead,y:yHead});}//蛇在吃到自己之后游戏结束function selfEat(){for (var i=0;i<trail.length;i++){if (xHead == trail[i].x && yHead == trail[i].y){gameOverSound();endGame();}}}function bubbleSort(arr){var swapped = true;var j=0;var tmp;while (swapped){swapped = false;j++;for (var i=0;i < arr.length-j;i++){if (arr[i]>arr[i+1]){tmp = arr[i];arr[i] = arr[i+1];arr[i+1] = tmp;swapped = true; }}}}function endGame(){clearInterval(t);setTimeout(function(){alert("Good Game");var scores = localStorage.getItem("scores");if (scores){var rank = JSON.parse(scores);if (rank.length == 10){if (score < Number(rank[9].score)){location.reload();}else{sessionStorage["score"] = score;document.getElementById("rank").click();}}else{sessionStorage["score"] = score;document.getElementById("rank").click();}}else{sessionStorage["score"] = score;document.getElementById("rank").click();}},200);}function fruitEatingSound(){ var fruitSound = document.getElementById("eatFruit");fruitSound.currentTime = 0;fruitSound.play();}function gameOverSound(){var endGameSound = document.getElementById("gameOver");endGameSound.currentTime = 0;endGameSound.play();}function rankPage(){if (sessionStorage["score"]){location.href = "record.html";}else{var c = confirm("查看排行榜将放弃本次游戏");if (c == true){location.href = "record.html";}}}//初始化蛇之后,每隔100毫秒调用moveSnake进行蛇的移动initSnake();t = setInterval(moveSnake,200);</script></body></html>

用户评论 (0)

发表评论

captcha

相关资源

Matlab数学建模:离散Hopfield神经网络的联想记忆数字识别代码

离散Hopfield神经网络的联想记忆数字识别代码,可用于Matlab数学建模,可直接使用。

9.82KB40积分

springboot教师工作量管理系统(代码+数据库+LW)

摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了教师工作量管理系统的开发全过程。通过分析教师工作量管理系统管理的不足,创建了一个计算机管理教师工作量管理系统的方案。文章介绍了教师工作量管理系统的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。本教师工作量管理系统管理员功能有个人中心,教师管理,分类信息管理,课程信息管理,工作量管理,系统管理等。教师功能有个人中心,课程信息管理,工作量管理。因而具有一定的实用性。本站是一个B/S模式系统,采用Spring Boot框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得教师工作量管理系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高教师工作量管理系统管理效率。关键词:教师工作量管理系统;Spring Boot框架;MYSQL数据库

12.25MB40积分

springboot甘肃非物质文化网站的设计与开发(代码+数据库+LW)

摘  要现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本甘肃非物质文化网站就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此甘肃非物质文化网站利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发.甘肃非物质文化网站的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。关键词:甘肃非物质文化网站;SSM框架;Mysql;自动化

71.74MB49积分

Matlab数学建模:D-S理论与灰色关联结合代码

D-S理论与灰色关联结合代码,可用于Matlab数学建模,方便快捷使用。

530.24KB38积分