0 0

贪食蛇的一个错误,谁能帮我纠正?5

<html>
<head>
<title>我的贪食蛇 </title>

</head>
<body>
<script>
<!--
//创建地图
var num = 15;//地图最小单位:格 的宽度
var cols = 30;//地图的列数
var rows = 20;//地图的行数
var borderwidth = 5;//边框宽度
var map = new Array();//游戏地图标记
function createmap(){
bw = cols * num + 2 * borderwidth;
bh = rows * num + 2 * borderwidth;
document.body.innerHTML = ' <div id=mainmap style="position:absolute;left:'+(document.body.clientWidth-bw)/2+';top:'+(document.body.clientHeight-bh)/2+';width:'+bw+';height:'+bh+';border:5px double #0000ff"> </div>';
//初始化游戏地图,标记空地 0
for(y=0;y <rows;y++){
map[y] = new Array();
for(x=0;x <cols;x++){
map[y][x] = '0';
}
}
sx = parseInt(Math.random()*cols);//随即生产蛇的位子
sy = parseInt(Math.random()*rows);
createfood();//创建食物
createsnake();//创建蛇

alldiv = mainmap.all.tags('div');//等同document.getElementById("mainmap").getElementsByTagName("div")
allspan = mainmap.all.tags('span');
}
onload = createmap;

//创建食物
function createfood(){
fx = parseInt(Math.random()*cols);//随即产生食物x坐标
fy = parseInt(Math.random()*rows);//随即产生食物y坐标
if(map[fy][fx]=='0'){//只能在空地上产生食物
mainmap.innerHTML = ' <span style="position:absolute;left:'+fx*num+';top:'+fy*num+';width:'+num+';height:'+num+';background-color:green;overflow:hidden"> </span>';
map[fy][fx]='f';//标记食物
}else{
createfood();
}
}
//创建蛇的位置
function createsnake(){
mainmap.innerHTML += ' <div x='+sx+' y='+sy+' style="position:absolute;left:'+sx*num+';top:'+sy*num+';width:'+num+';height:'+num+';background-color:red;overflow:hidden"> </div>';

map[sy][sx]= 's';//蛇标记
}

//键盘监听
document.onkeydown = keydown;
function keydown(){
key = event.keyCode;
switch(key){
case 37://左
dir(-1,0);
break;
case 38://上
dir(0,-1);
break;
case 39://右
dir(1,0);
break;
case 40://下
dir(0,1);
break;
}
return false;
}

//开始游戏
var start = 0;
function dir(x,y){
gox = x;
goy = y;
if(start==0){
speedUp();//控制蛇的速度
start = 1;
move();
}
}

//移动
function move(){
sx+=gox;
sy+=goy;

if(sx <0 || sx>cols || sy <0 || sy>rows){//遇到边界
move1();
}else{
snakefont = map[sy][sx];//判断蛇前方是什么 0空地 f食物 s自己
switch(snakefont){
case '0'://前方是空地
move2();
break;
case 'f'://前方是食物
move3();
break;
case 's'://前方是自己
move1();
break;
}
}
}

//重新开始
function move1(){
restart = window.confirm("GAME OVER");
if(restart){
window.location.reload();//刷新页面
}
}

//蛇前面是空地
var speed = 200;//蛇的速度
function move2(){
map[alldiv[0].y][alldiv[0].x] = '0';//走过一格,地图标记空地
alldiv[0].removeNode(true);//删除第一个节点
createsnake();
setTimeout('move()',speed);
}
//前方是食物
function move3(){
createsnake();//蛇增加一节
allspan[0].removeNode(true);//删除食物
createfood();
setTimeout('move()',speed);
}

//控制蛇的速度
function speedUp(){
speed -= 5;

if(speed>5){
setTimeout('speedUp()',5000);
}
}
-->
</script>
</body>
</html>

----------------------------------------------------------------
只有在吃食物的时候
map[alldiv[0].y][alldiv[0].x] = '0'
会出错。为什么。。。

还有想问一下 alldiv 这个数组的长度会自动变化吗。还是需要在每次创建一节蛇的时候都需要再赋值
DAO 
2009年12月02日 02:15
目前还没有答案

相关推荐

    C#贪食蛇代码

    【C#贪食蛇代码】是一个基于C#编程语言实现的经典游戏项目,它结合了学习与实践,展示了C#在游戏开发中的应用。这个项目可能是从网络上获取的基础代码进行改良而来的,开发者针对原始代码进行了优化,增加了计分板...

    C++版贪食蛇

    总的来说,【C++版贪食蛇】游戏的实现结合了MFC的图形用户界面和双向链表的数据结构,通过这两个核心元素,我们可以创建出一个简单但有趣的经典游戏。双向链表使得管理蛇的身体变得高效且易于理解,而MFC则为我们...

    java贪食蛇游戏.zip

    java贪食蛇游戏java贪食蛇游戏java贪食蛇游戏java贪食蛇游戏java贪食蛇游戏 java贪食蛇游戏java贪食蛇游戏java贪食蛇游戏java贪食蛇游戏java贪食蛇游戏 java贪食蛇游戏java贪食蛇游戏java贪食蛇游戏java贪食蛇游戏...

    很好的贪食蛇游戏源码

    贪食蛇游戏的基本原理是控制一个由多个方块组成的身体在网格上移动,吃食物以增长。每吃到一个食物,蛇身会增加一节,而玩家需要避免蛇头撞到墙壁或自己的身体。游戏结束条件通常是蛇头碰到自身或边界。 2. **...

    C语言贪食蛇(链表实现)

    在贪食蛇游戏中,我们可以创建一个节点结构体来存储蛇的坐标。例如: ```c typedef struct Node { int x; int y; struct Node* next; } SnakeNode; ``` 游戏开始时,蛇由几个初始节点组成,这些节点表示蛇的...

    贪食蛇.zip

    【贪食蛇.zip】是一个包含了使用Html5、Canvas和JavaScript技术开发的经典小游戏——贪食蛇的源代码包。这个小游戏的实现充分利用了现代Web技术,让玩家在浏览器环境中即可体验到传统的游戏乐趣。 首先,我们要了解...

    C# winform制作贪食蛇游戏 经典

    在本文中,我们将深入探讨如何使用C# WinForms来创建一个经典的贪食蛇游戏。贪食蛇游戏是一款深受玩家喜爱的简单却具有挑战性的游戏,它不仅锻炼玩家的反应速度,也展示了基本的游戏编程概念。 首先,让我们了解C# ...

    java写的贪食蛇源码

    贪食蛇游戏,作为一个经典的计算机程序设计题目,深受学生和编程爱好者的喜爱。它的基本玩法是控制一条不断移动的蛇去吃食物,每吃到一个食物,蛇的长度就会增加,而游戏区域不变,增加了游戏的挑战性。在大学的课程...

    C语言数据结构——贪食蛇

    本篇文章将深入探讨如何利用C语言实现一个经典的游戏——贪食蛇,这是一个非常适合初学者练习数据结构和控制逻辑的项目。 贪食蛇游戏的核心在于动态维护蛇的位置和食物的位置,并通过蛇头的移动来更新蛇的身体位置...

    贪食蛇C++工程加源代码

    贪食蛇是一款经典的电子游戏,它的基本玩法是控制一个在有限区域内移动的蛇,通过吃食物使蛇身增长,同时避免蛇头碰到自己的身体或边界。本项目是一个用C++语言实现的贪食蛇游戏,具有图形用户界面(GUI),为学习...

    java小游戏贪食蛇

    在这个项目中,开发者通过控制台或图形用户界面(GUI)实现了一个简单的游戏环境,玩家可以通过键盘输入来控制蛇的移动,吃到食物后蛇会变长,碰到边界或自身则游戏结束。 首先,让我们深入了解一下Java编程语言的...

    javascript-贪食蛇

    一小段javascript编写的贪食蛇代码

    c语言简易贪食蛇

    贪食蛇是一款经典的电子游戏,它的基本玩法是控制一个不断移动的小蛇,通过吃食物来增长身体长度。在C语言中实现这款游戏,可以帮助初学者更好地理解程序设计的基本原理,包括循环、条件判断、数组操作等核心概念。 ...

    C#贪食蛇全能升级无敌版.zip

    在本文中,我们将深入探讨如何使用C#编程语言开发一个贪食蛇游戏的全能升级无敌版。这个项目不仅包括了基本的游戏逻辑,还允许玩家自定义游戏参数,如蛇的长度、大小、食物数量以及爬行速度。我们将涵盖以下几个关键...

    贪食蛇代码.zip

    本文将深入解析一个基于JavaScript实现的贪食蛇游戏,通过分析压缩包中的四个文件——my.css、说明.htm、my.html和my.js,我们将了解其背后的关键技术和编程思想。 首先,my.html是游戏的主页面,它定义了游戏界面...

    贪食蛇h5制作

    通过以上步骤,我们可以创建一个简单但功能完整的贪食蛇游戏,既可以在个人电脑上玩,也可以适应移动设备的触摸操作。这个项目不仅展示了HTML5的强大,还锻炼了开发者在JavaScript编程和响应式设计上的技巧。无论是...

    android 贪食蛇

    在贪食蛇游戏中,我们首先要创建一个SurfaceView,它提供了一个独立的绘图线程,确保游戏画面流畅无卡顿。SurfaceView内部的Canvas将用于绘制游戏的各种元素,如蛇、食物和边界。 事件处理是游戏交互的关键。在...

    html与JavaScript 贪食蛇

    **贪食蛇游戏开发概述** 贪食蛇游戏是一款经典的像素级游戏,自1976年首次出现以来,因其简单的规则和高度的可玩性,一直受到玩家的喜爱。在这个项目中,我们将使用HTML和JavaScript来实现这个经典游戏。HTML作为...

Global site tag (gtag.js) - Google Analytics