<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>贪吃蛇</title>
<style type="text/css">
.Table table {
border-collapse: collapse;
}
.Table table td {
border: 1px solid #808080;
width: 10px;
height: 10px;
font-size: 0;
line-height: 0;
overflow: hidden;
}
.snake {
background-color: green;
}
.food {
background-color: blue;
}
</style>
<script type="text/javascript" language="javascript">
<!--初始化参数-->
var interval0 = null;
var interval1 = null;
var interval2 = null;
var interval3 = null;
var interval4 = null;
var flag = 39;
var one = true;
var array = new Array();
var i = 0, j = 0, t = 0, s = 0;
var xx = new Array(10000);
var yy = new Array(10000);
var speedd = 100;
<!--绘制表格-->
function PannelTable() {
document.getElementById("table").innerHTML = "";
this.pt = function(x, y) {
this.x = x;
this.y = y;
/*var t = document.createElement("table");
var b = document.createElement("tbody");
for (var i = 0; i < x; i++) {
var r = document.createElement("tr");
for (var j = 0; j < y; j++) {
var c = document.createElement("td");
var m = document.createTextNode("2");
c.appendChild(m);
r.appendChild(c);
}
b.appendChild(r);
}
t.appendChild(b);
document.getElementById("table").appendChild(t);*/
var html = [];
html.push("<table>");
for (var i = 0; i < x; i++) {
html.push("<tr>");
for (var j = 0; j < y; j++) {
html.push('<td id="box_' + i + "_" + j + '"> </td>');
}
html.push("</tr>");
}
html.push("</table>");
this.pannel = document.getElementById("table");
this.pannel.innerHTML = html.join("");
for (var i = 0; i < x; i++) {
array[i] = new Array();
for (var j = 0; j < y; j++) {
array[i][j] = 0;
}
}
for (var g = 0; g <10000; g++) {
xx[g] = 0;
yy[g] = 0;
}
var food_x = Math.floor(Math.random() * (x-3) + 1);
var food_y = Math.floor(Math.random() * (y-3) + 1);
array[food_x][food_y] = 2;
}
}
<!--选择表格的样式-->
function Main(x, y) {
new PannelTable().pt(x, y);
}
<!--选择速度-->
function Speed(speed){
speedd = speed;
}
<!--画蛇-->
function PaintSnake(array) {
for (var i = 0; i < array.length; i++) {
for (var j = 0; j < array[i].length; j++) {
if (array[i][j] == 1) {
document.getElementById("box_" + i + "_" + (j))
.setAttribute("class", "snake");
} else if (array[i][j] == 0) {
document.getElementById("box_" + (i) + "_" + (j))
.setAttribute("class", "");
} else {
document.getElementById("box_" + (i) + "_" + (j))
.setAttribute("class", "food");
}
}
}
}
<!--清空-->
function ClearSnake(array) {
for (var i = 0; i < array.length; i++) {
for (var j = 0; j < array[i].length; j++) {
array[i][j] = 0;
}
}
}
<!--点击开始创建蛇-->
function Start() {
if (one == true) {
document.getElementById("box_0_0").setAttribute("class", "snake");
array[0][0] = 1;
xx[t] = 0;
yy[t++] = 0;
interval0 = setInterval("Init0()",speedd);
one = false;
}
}
function Init0() {
if (j > array[i].length - 1) {
ClearSnake(array);
PaintSnake(array);
window.alert("游戏结束");
clearInterval(interval0);
return;
} else {
if (array[i][j + 1] == 2) {
if (j+2>=array[i].length-1){
ClearSnake(array);
PaintSnake(array);
window.alert("游戏结束");
clearInterval(interval0);
return;
}
do {
var food_x = Math.floor(Math.random() * (array.length-3) + 1);
var food_y = Math
.floor(Math.random() * (array[i].length-3) + 1);
} while (array[food_x][food_y] == 1||(food_x==0&&food_y==0)||(food_x==0&&food_y==array[i].length-1)||(food_x==array.length-1&&food_y==0)||(food_x==array.length-1&&food_y==array[i].length-1));
array[food_x][food_y] = 2;
array[i][++j] = 1;
xx[t] = i;
yy[t++] = j;
PaintSnake(array);
} else if(array[i][j + 1] == 0){
array[xx[s]][yy[s++]] = 0;
array[i][++j] = 1;
xx[t] = i;
yy[t++] = j;
PaintSnake(array);
}else{
ClearSnake(array);
PaintSnake(array);
window.alert("游戏结束");
clearInterval(interval0);
return;
}
}
}
<!--控制方向-->
function Init(Flag) {
if (Flag == 37 && flag != 39) {
if (j <= 0) {
ClearSnake(array);
PaintSnake(array);
window.alert("游戏结束");
clearInterval(interval1);
return;
} else {
if (array[i][j - 1] == 2) {
if(j-2<0){
ClearSnake(array);
PaintSnake(array);
window.alert("游戏结束");
clearInterval(interval1);
return;
}
do {
var food_x = Math.floor(Math.random() * (array.length-3)
+ 1);
var food_y = Math.floor(Math.random() * (array[i].length-3)
+ 1);
} while (array[food_x][food_y] == 1||(food_x==0&&food_y==0)||(food_x==0&&food_y==array[i].length-1)||(food_x==array.length-1&&food_y==0)||(food_x==array.length-1&&food_y==array[i].length-1));
array[food_x][food_y] = 2;
array[i][--j] = 1;
xx[t] = i;
yy[t++] = j;
PaintSnake(array);
} else if(array[i][j - 1] == 0){
array[xx[s]][yy[s++]] = 0;
array[i][--j] = 1;
xx[t] = i;
yy[t++] = j;
PaintSnake(array);
}else{
ClearSnake(array);
PaintSnake(array);
window.alert("游戏结束");
clearInterval(interval1);
return;
}
}
flag = 37;
} else if (Flag == 38 && flag != 40) {
if (i <= 0) {
ClearSnake(array);
PaintSnake(array);
window.alert("游戏结束");
clearInterval(interval2);
return;
} else {
if (array[i - 1][j] == 2) {
if(i-2<0){
ClearSnake(array);
PaintSnake(array);
window.alert("游戏结束");
clearInterval(interval2);
return;
}
do {
var food_x = Math.floor(Math.random() * (array.length-3)
+ 1);
var food_y = Math.floor(Math.random() * (array[i].length-3)
+ 1);
} while (array[food_x][food_y] == 1||(food_x==0&&food_y==0)||(food_x==0&&food_y==array[i].length-1)||(food_x==array.length-1&&food_y==0)||(food_x==array.length-1&&food_y==array[i].length-1));
array[food_x][food_y] = 2;
array[--i][j] = 1;
xx[t] = i;
yy[t++] = j;
PaintSnake(array);
} else if(array[i - 1][j] == 0) {
array[xx[s]][yy[s++]] = 0;
array[--i][j] = 1;
xx[t] = i;
yy[t++] = j;
PaintSnake(array);
}else{
ClearSnake(array);
PaintSnake(array);
window.alert("游戏结束");
clearInterval(interval2);
return;
}
}
flag = 38;
} else if (Flag == 39 && flag != 37) {
if (j > array[i].length - 1) {
ClearSnake(array);
PaintSnake(array);
window.alert("游戏结束");
clearInterval(interval3);
return;
} else {
if (array[i][j + 1] == 2) {
if(j+2>array[i].length-1){
ClearSnake(array);
PaintSnake(array);
window.alert("游戏结束");
clearInterval(interval3);
return;
}
do {
var food_x = Math.floor(Math.random() * (array.length-3)
+ 1);
var food_y = Math.floor(Math.random() * (array[i].length-3)
+ 1);
} while (array[food_x][food_y] == 1||(food_x==0&&food_y==0)||(food_x==0&&food_y==array[i].length-1)||(food_x==array.length-1&&food_y==0)||(food_x==array.length-1&&food_y==array[i].length-1));
array[food_x][food_y] = 2;
array[i][++j] = 1;
xx[t] = i;
yy[t++] = j;
PaintSnake(array);
} else if(array[i][j + 1] == 0) {
array[xx[s]][yy[s++]] = 0;
array[i][++j] = 1;
xx[t] = i;
yy[t++] = j;
PaintSnake(array);
}else{
ClearSnake(array);
PaintSnake(array);
window.alert("游戏结束");
clearInterval(interval3);
return;
}
}
flag = 39;
} else if (Flag == 40 && flag != 38) {
if (i > array[i].length - 2) {
ClearSnake(array);
PaintSnake(array);
window.alert("游戏结束");
clearInterval(interval4);
return;
} else {
if (array[i + 1][j] == 2) {
if(i+2>array.length-1){
ClearSnake(array);
PaintSnake(array);
window.alert("游戏结束");
clearInterval(interval4);
return;
}
do {
var food_x = Math.floor(Math.random() * (array.length-3)
+ 1);
var food_y = Math.floor(Math.random() * (array[i].length-3)
+ 1);
} while (array[food_x][food_y] == 1||(food_x==0&&food_y==0)||(food_x==0&&food_y==array[i].length-1)||(food_x==array.length-1&&food_y==0)||(food_x==array.length-1&&food_y==array[i].length-1));
array[food_x][food_y] = 2;
array[++i][j] = 1;
xx[t] = i;
yy[t++] = j;
PaintSnake(array);
} else if(array[i + 1][j] == 0){
array[xx[s]][yy[s++]] = 0;
array[++i][j] = 1;
xx[t] = i;
yy[t++] = j;
PaintSnake(array);
}else{
ClearSnake(array);
PaintSnake(array);
window.alert("游戏结束");
clearInterval(interval4);
return;
}
}
flag = 40;
}
}
function Move(Event) {
if (Event.keyCode == 37) {
if (flag != 37) {
clearInterval(interval2);
clearInterval(interval4);
clearInterval(interval1);
interval1 = setInterval("Init(37)", speedd);
}
} else if (Event.keyCode == 38) {
if (flag != 38) {
clearInterval(interval0);
clearInterval(interval1);
clearInterval(interval3);
clearInterval(interval2);
interval2 = setInterval("Init(38)", speedd);
}
} else if (Event.keyCode == 39) {
if (flag != 39) {
clearInterval(interval2);
clearInterval(interval4);
clearInterval(interval0);
clearInterval(interval3);
interval3 = setInterval("Init(39)", speedd);
}
} else if (Event.keyCode == 40) {
if (flag != 40) {
clearInterval(interval0);
clearInterval(interval1);
clearInterval(interval3);
clearInterval(interval4);
interval4 = setInterval("Init(40)", speedd);
}
} else {
}
}
function Reflsh(){
window.location.href=window.location.href;
}
</script>
</head>
<body style="background-color: rgb(208, 223, 239);"
οnkeydοwn="Move(event)">
<select id="select1"
style="font-family: 微软雅黑; height: 25px; margin-right: 10px;">
<option selected="selected"><--请选择地图大小--></option>
<option οnclick="Main(20,20)">20*20</option>
<option οnclick="Main(30,30)">30*30</option>
<option οnclick="Main(35,50)">35*50</option>
<option οnclick="Main(35,60)">35*60</option>
</select>
<select style="font-family: 微软雅黑; height: 25px; margin-right: 10px;">
<option selected="selected"><--请选择难度--></option>
<option οnclick="Speed(1000)">初级难度</option>
<option οnclick="Speed(500)">中级难度</option>
<option οnclick="Speed(100)">高级难度</option>
</select>
<div id="table" class="Table" style="margin-top: 20px;"></div>
<br>
<input type="button" value="开始游戏"
style="font-family: 微软雅黑; height: 25px; margin-right: 10px;"
οnclick="Start()"></input>
<input type="button" value="重新开始"
style="font-family: 微软雅黑; height: 25px; margin-right: 10px;" οnclick="Reflsh()"></input>
</body>
</html>
JS版本_贪吃蛇
最新推荐文章于 2024-09-05 11:00:53 发布