贪吃蛇游戏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
var width = 15; //蛇运动区域宽
var height = 15; //蛇运动区域高
var snakeLength = 3; //蛇的初始长度
var timerId ;
var direction = "X++"; //蛇朝哪方向前进,初始化向右
var lastMov_id = null; //蛇前进一步时,记录蛇的尾巴上次的位置
var score = 0; //得分
var randomEgg ; //随机产生的蛋
var bgColor = "#00FFE0"; //背景色
alltds = document.getElementsByTagName("td"); var snake = new Array();
function drawBgColor(){
for(i=0;i alltds[i].style.backgroundColor = bgColor; } } function drawSnake(){ if(snake.length == 0){ //初始化蛇的长度 for(i=0;i snake[i] = snakeId; } }else{ getSnakeArray(); } for(i=0;i if(lastMov_id != null){ changeBgColor(lastMov_id,bgColor); } if(snake[snake.length-1] == randomEgg){ drawEgg(); } msg.innerHTML = "得分:"+score; timerId = window.setTimeout("drawSnake()",300); } function getSnakeArray(){ if(direction == ""){ return; } lastMov_id = snake[0]; movIds = snake[snake.length-1].split("|"); movIds_Y = parseInt(movIds[0]); movId_X = parseInt(movIds[1]); eval(direction.replace("X","movId_X").replace("Y","movI ds_Y")); newLeaderId = movIds_Y+"|"+movId_X; if(isLoss(newLeaderId)){ alert("哈哈,输啦~~"); window.location.reload(); if(newLeaderId == randomEgg){ //吃到蛋,得分+1,蛇的长度+1 score ++; snake.length ++; snake[snake.length-1] = newLeaderId; lastMov_id = null; }else{ //否则蛇向前移动一步 for(i=0;i if(i == snake.length-1){ snake[i] = newLeaderId; break; } snake[i] = snake[i+1]; } } } function isLoss(newId){ //判断是否输了var curid = newId.split("|"); cur_Y = curid[0]; cur_X = curid[1]; if(cur_Y < 0 || cur_X < 0){ return true; } if(cur_Y > height-1 || cur_X > width-1){ return true; } for(i=0;i if(newId == snake[i]) return true; } return false; } function drawEgg(){ while(true){ //如果产生的蛋与蛇重合,则从新产生 randomEgg = getRandomNum(0,height)+"|"+getRandomNum(0,width); if(contains(randomEgg) == false){ break; } } changeBgColor(randomEgg,"blue"); } function contains(con){ for(i=0;i if(snake[i] == randomEgg) return true; } return false; } function getRandomNum(min,max){ var randomNum = parseInt(Math.random()*(max-min)+min); return randomNum; } function changeBgColor(obj,color){ if(typeof(obj) == "string"){