⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 纯dhtml版的贪食蛇.htm

📁 纯DHTML版的贪食蛇 cDHTMLbant
💻 HTM
字号:
<html>
<head>
<title>纯DHTML版的贪食蛇</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#FFFFFF"><table width=680 align=center border=0 cellpadding=0 cellspacing=0>
<tr>
<td align=center>
<br><H1>纯DHTML版的贪食蛇</H1>
    </td>
</tr></table>
<table width=680 align=center border=0 cellpadding=10 cellspacing=0><tr>
<td class=mid>
&lt;HTML&gt;
<br>
&lt;HEAD&gt;
<br>
&lt;!------------------------------------------------------
<br>
What the hell is this:
<br>
=========
<br>
A very simple &quot;Greedy Snake&quot; game.
<br>

<br>
Copyright:
<br>
=========
<br>
Copyright by Lucifer Xie 2001-2002.All rights reserved!
<br>
Author Email: nsxy@163.net
<br>

<br>
Note:
<br>
=========
<br>
1.This version maybe not support IE4.0,because I don't know whether the &quot;setInterval()&quot; function can be used in IE4.X rightly.
<br>
So,you can replace it by &quot;setTimeout()&quot;.
<br>
--------------------------------------------------------&gt;
<br>
&lt;TITLE&gt;Pure DHTML Greedy Snake ver0.86&lt;/TITLE&gt;
<br>
&lt;style&gt;
<br>
body {margin:0;}
<br>
td {height:20;width:20;font:16 Webdings;border:1 solid #99CCCC;}
<br>
#Arena {background:#99CCCC;border:1 groove black;}
<br>
&lt;/style&gt;
<br>
&lt;/HEAD&gt;
<br>
&lt;BODY&gt;
<br>
&lt;table id=Arena cellspacing=0 cellpadding=0&gt;
<br>
&lt;script&gt;
<br>
for (var i=0;i&lt;21;i++){
<br>
	document.write(&quot;&lt;tr&gt;&quot;);
<br>
	for (var j=0;j&lt;21;j++){
<br>
		document.write(&quot;&lt;td&gt;&lt;/td&gt;&quot;);
<br>
	}
<br>
	document.write(&quot;&lt;/tr&gt;&quot;);
<br>
}
<br>
&lt;/script&gt;
<br>
&lt;/table&gt;
<br>

<br>
&lt;script&gt;
<br>
var level=5;
<br>
var maxlevel=6
<br>
//方向
<br>
var dir=&quot;&quot;;
<br>
//用来判断蛇身是否已经完全展开
<br>
var startflag=0;
<br>
//蛇的数据数组
<br>
var bodyX=new Array(10,10,10,10,10)
<br>
var bodyY=new Array(10,10,10,10,10)
<br>
var headX,headY,lastX,lastY;
<br>
//初始长度为5
<br>
var length=5;
<br>

<br>
//显示,只修改蛇头和临近蛇头的蛇身以及蛇尾
<br>
function show(){
<br>
		Arena.rows(bodyY[0]).cells(bodyX[0]).style.background=&quot;black&quot;;
<br>
		Arena.rows(headY).cells(headX).style.background=&quot;green&quot;;
<br>
}
<br>

<br>
//产生一个蛇果
<br>
function spawn(){
<br>
	while(1){
<br>
		with(Math){
<br>
			x=round(random()*20);
<br>
			y=round(random()*20);
<br>
		}
<br>
		if (Arena.rows(y).cells(x).style.background==&quot;&quot;)
<br>
			break;
<br>
	}
<br>
	Arena.rows(y).cells(x).style.background=&quot;red&quot;;
<br>
}
<br>

<br>
//判断是否GameOver
<br>
function Lucifer(){
<br>
	if (bodyX[0]&lt;0||bodyX[0]&gt;20||bodyY[0]&lt;0||bodyY[0]&gt;20)
<br>
		return true;
<br>
	if (Arena.rows(bodyY[0]).cells(bodyX[0]).style.background==&quot;green&quot;)
<br>
		return true;
<br>
	return false;
<br>
}
<br>

<br>
function GameOver(){
<br>
	clearInterval(gameInterval);
<br>
	alert(&quot;Game Over!&quot; + String.fromCharCode(13,13) + &quot;Author Email:nsxy@163.net&quot;);
<br>
}
<br>

<br>
//根据方向移动一格
<br>
function move(){
<br>
	if (dir==&quot;&quot;) return;
<br>
	if (startflag&lt;5) startflag++;
<br>
	headX=bodyX[0];headY=bodyY[0];
<br>
	lastX=bodyX[length-1];lastY=bodyY[length-1];
<br>
	//先改变蛇头坐标
<br>
	switch (dir){
<br>
		case &quot;u&quot;:
<br>
			bodyY[0]--;	
<br>
			break;
<br>
		case &quot;d&quot;:
<br>
			bodyY[0]++;
<br>
			break;
<br>
		case &quot;l&quot;:
<br>
			bodyX[0]--;
<br>
			break;
<br>
		case &quot;r&quot;:
<br>
			bodyX[0]++;
<br>
			break;
<br>
	}
<br>
	//判断蛇头是否撞到障碍
<br>
	if (Lucifer()){
<br>
		GameOver();
<br>
		return;
<br>
	}
<br>
	//如果吃到蛇果,蛇身增长,不擦除蛇尾,否则擦除蛇尾
<br>
	if (Arena.rows(bodyY[0]).cells(bodyX[0]).style.background==&quot;red&quot;){
<br>
		length++;
<br>
		bodyX[length-1]=bodyX[length-2];
<br>
		bodyY[length-1]=bodyY[length-2];
<br>
		spawn();
<br>
	}
<br>
	else{
<br>
		//执行了5次才开始擦除蛇尾,即蛇身已经完全伸展
<br>
		if (startflag==5)
<br>
			Arena.rows(lastY).cells(lastX).style.background=&quot;&quot;;
<br>
	}
<br>
	//改变蛇身坐标
<br>
	for (i=length-1;i&gt;1;i--){
<br>
		bodyX[i]=bodyX[i-1];
<br>
		bodyY[i]=bodyY[i-1];
<br>
	}
<br>
	bodyX[1]=headX;bodyY[1]=headY;
<br>
	//显示
<br>
	show();
<br>
}
<br>

<br>
function document_onkeydown(){
<br>
	switch (event.keyCode){
<br>
		case 37:
<br>
			if (bodyX[0]==bodyX[1]) dir=&quot;l&quot;;
<br>
			break;
<br>
		case 38:
<br>
			if (bodyY[0]==bodyY[1]) dir=&quot;u&quot;;
<br>
			break;
<br>
		case 39:
<br>
			if (bodyX[0]==bodyX[1]) dir=&quot;r&quot;;
<br>
			break;
<br>
		case 40:
<br>
			if (bodyY[0]==bodyY[1]) dir=&quot;d&quot;;
<br>
			break;
<br>
		case 32:
<br>
			clearInterval(gameInterval);
<br>
	}
<br>
}
<br>
document.onkeydown=document_onkeydown;
<br>

<br>
/*主程序开始*/
<br>
//在初始位置显示蛇头
<br>
Arena.rows(bodyY[0]).cells(bodyX[0]).style.background=&quot;black&quot;;
<br>
//产生第一个蛇果
<br>
spawn();
<br>
//开始移动
<br>
gameInterval=setInterval(&quot;move()&quot;,(maxlevel-level+1)*50);
<br>
&lt;/script&gt;
<br>
&lt;/BODY&gt;
<br>
&lt;/HTML&gt;
<br>
</td>
</tr>
</table>
</body>
</html>



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -