亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

jsp網(wǎng)頁(yè)實(shí)現(xiàn)貪吃蛇小游戲

瀏覽:127日期:2022-06-07 13:48:08

本文實(shí)例為大家分享了jsp網(wǎng)頁(yè)實(shí)現(xiàn)貪吃蛇小游戲的具體代碼,供大家參考,具體內(nèi)容如下

一、主要思路

(1)第一步實(shí)現(xiàn)地圖。
(2)第二步實(shí)現(xiàn)蛇身。
(3)第三步實(shí)現(xiàn)食物。
(4)第四步實(shí)現(xiàn)移動(dòng)吃食物。
(5)第五步實(shí)現(xiàn)規(guī)則(撞墻游戲結(jié)束)。

二、代碼實(shí)現(xiàn)

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>貪吃蛇</title> <style>  #map{   width: 400px;   height: 400px;   border: 1px solid black;  }  /*地圖顏色*/  .divMap{   width: 18px;   height: 18px;   margin: 1px;   background-color: yellow;   float: left;  }  /*蛇身顏色*/  .divSnake{    width: 18px;    height: 18px;    margin: 1px;    background-color: red;    float: left;   }  /*食物顏色*/  .divFood{   width: 18px;   height: 18px;   margin: 1px;   background-color: green;   float: left;  } </style> <script>  var mapX=20;  var mapY=20; //地圖邊界,橫向和縱向的div小格  var arrMap=new Array();//地圖數(shù)組  var snackeX = [4,5,6,7],snackeY=[2,2,2,2];//蛇身初始化坐標(biāo)值  var foodX,foodY; //創(chuàng)建食物坐標(biāo)  var keyCode = 39;//蛇身移動(dòng)方向,默認(rèn)向右  //創(chuàng)建地圖  function createMap() {   //獲取地圖外框div   var map=document.getElementById("map");   //地圖創(chuàng)建div小格,橫縱各20個(gè)   for(y=0;y<mapY;y++)   {    arrMap[y]= new Array();    for(x=0;x<mapX;x++)    {     //div小格     var div =document.createElement("div");     div.className="divMap";//初始化樣式     arrMap[y][x]=div;//將div小格放入地圖數(shù)組中     map.appendChild(div);//頁(yè)面繪制    }   }  }  //創(chuàng)建蛇身  function createSnack(){   //改變地圖中一串連續(xù)div底色   for(i=0;i<snackeX.length;i++)   {    arrMap[snackeY[i]][snackeX[i]].className ="divSnake";   }  }  //清除蛇身  function clearSnack() {   for(i=0;i<snackeX.length;i++)   {    arrMap[snackeY[i]][snackeX[i]].className="divMap";   }  }  //創(chuàng)建食物  function createFood()  {   //arrMap[foodY][foodX].className="divFood";   var result;//判斷是否要重新生成食物   do {    result = false;//默認(rèn)不重疊    //隨機(jī)食物坐標(biāo)    foodX=parseInt(Math.random()*mapX);    foodY=parseInt(Math.random()*mapY);    //判斷食物不能出現(xiàn)在蛇身上    for(i=0;i>snackeX.length;i++) {     if(snackeX[1]==foodX&&snackeY[1]==foodY)     {      result = true;//需要重新生成      break;     }    }   }while(result);   arrMap[foodY][foodX].className="divFood";  }  //蛇身運(yùn)動(dòng)  //1.清除蛇身  //2.移動(dòng)蛇身坐標(biāo),增加蛇頭,清除蛇尾一格  function snackMove() {   //清除蛇身   clearSnack();   for (i = 0; i < snackeX.length - 1; i++) {    snackeX[i] = snackeX[i + 1];    snackeY[i] = snackeY[i + 1];   }   //每次移動(dòng),蛇頭增加一格, keyCode匹配鍵盤(pán)方向   switch (keyCode) {    case 37://向左     snackeX[snackeX.length - 1]--;     break;    case 38://向上     snackeY[snackeY.length - 1]--;     break;    case 39://向右     snackeX[snackeX.length - 1]++;     break;    case 40://向下     snackeY[snackeY.length - 1]++;     break;   }   //吃食物   if (snackeX[snackeX.length - 1] == foodX && snackeY[snackeY.length - 1] == foodY)   {    //吃到食物    snackeX[snackeX.length]=snackeX[snackeX.length-1];    snackeY[snackeY.length]=snackeY[snackeY.length-1];    //重新排列蛇身    for(i=snackeX.length-1;i>0;i--)    {     snackeX[i]=snackeX[i-1];     snackeY[i]=snackeY[i-1];    }    createFood();//重新生成下一個(gè)食物   }   //超出游戲邊框   if(snackeX[snackeX.length-1]<0    || snackeX[snackeX.length-1]>mapX-1    || snackeY[snackeY.length-1]<0    || snackeY[snackeY.length-1]>mapY-1)   {    clearInterval(move);//停止移動(dòng)    alert("游戲結(jié)束");    return ;   }   createSnack();//重新創(chuàng)建蛇身  }  //鍵盤(pán)事件  function keyDown(){   var newKey = event.keyCode//鍵盤(pán)按鍵   if(keyCode == 37 && newKey == 39||    keyCode == 39 && newKey == 37||    keyCode == 38 && newKey == 40||    keyCode == 40 && newKey == 38   ) {    //禁止掉頭    return ;   } else if(newKey>=37&&newKey<=40){    //用戶(hù)按了某個(gè)方向鍵    keyCode=newKey;    }    else{     //其他按鍵   }  }  //運(yùn)行  window.onload =function () {   createMap(); //創(chuàng)建地圖   createSnack();//創(chuàng)建蛇身   createFood();//創(chuàng)建食物   move= setInterval("snackMove()",200)//蛇身移動(dòng)   document.onkeydown = keyDown;//獲取方向鍵  } </script></head><body><div id="map"></div></body></html>

三、實(shí)現(xiàn)效果

按方向鍵實(shí)現(xiàn)蛇身運(yùn)動(dòng)。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持。

標(biāo)簽: JSP
相關(guān)文章:
主站蜘蛛池模板: 日本一级毛片冲田杏梨 | 国产麻豆影院 | 久久亚洲综合色 | 国产精品视频在线播放 | 青青青国产视频 | 国产欧美性综合视频性刺激 | 国产一区二区三区四区20p | 欧美色视频日本片免费高清 | 亚洲女视频 | 国内自拍网红在综合图区 | 精品国产欧美一区二区五十路 | 日韩不卡视频在线观看 | 亚洲欧洲日韩国产一区二区三区 | 亚洲国产精品aaa一区 | 成年黄大片 | 欧美精品亚洲一区二区在线播放 | 国产尻逼视频 | 国产一区二区不卡免费观在线 | 亚洲黄色网址在线观看 | 久久精品一区二区三区日韩 | 久久久久在线视频 | 国产精品久久久久无码av | 小明www永久在线看 小明www永久免费播放平台 | 久草视频福利在线 | 日韩在线不卡视频 | 人人做天天爱夜夜爽中字 | 国产精品黄大片在线播放 | 色视频一区二区三区 | 亚洲激情视频图片 | 激情久久久久久久久久 | 一级女性全黄生活片看看 | 成人18免费入口 | semm亚洲欧美在线高清 | 一级黄色性片 | 国产曰批的免费视频 | 国产777| 国内自拍videos hd | 夜色成人免费观看 | 国产特级全黄一级毛片不卡 | 欧美日韩国产深夜福利视频 | 国产精品视频一区日韩丝袜 |