日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

原生JavaScript實現貪吃蛇游戲

瀏覽:24日期:2023-06-15 13:36:38

本文實例為大家分享了JavaScript實現貪吃蛇游戲的具體代碼,供大家參考,具體內容如下

1.HTML部分,東西很少

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <title>貪吃蛇</title> <style> *{ margin: 0px; padding: 0px; } td{ border-radius: 30%; } </style> </head><body> <script type='text/javascript' src='http://www.b3g6.com/bcjs/snake.js'></script></body></html>

2.JavaScript部分

var arrayBox = new Array(); // 存放單元格var arraySnake = new Array(); // 存放蛇 var food; // 食物var snakeHead; // 蛇頭var key = true; // 判斷頁面是否需要初始化var timekey; // 運動定時器常量function newGame() { bgInit(); arrayBoxInit(); initSnake(); randomFood();}newGame();document.onclick = function () { if (key) { gameStart(arraySnake); key = false; }}// 記錄的單元格數組初始化function arrayBoxInit() { for (var y = 0; y < 20; y++) { arrayBox[y] = new Array(); for (var x = 0; x < 20; x++) { arrayBox[y][x] = 0; } }}// 背景初始化function bgInit() { var table = document.createElement('table'); table.style = 'border-spacing:0px; border:1px solid #3c3c3c;margin:10% auto'; for (var y = 0; y < 20; y++) { var tr = document.createElement('tr'); for (var x = 0; x < 20; x++) { var td = '<td class=’box-' + y + '-' + x + '’ style=’width: 20px; height: 20px;’></td>'; tr.innerHTML += td; } table.appendChild(tr); } document.body.insertBefore(table, document.getElementsByTagName('script')[0]);}// 初始化蛇function initSnake() { var x = Math.floor(Math.random() * 20); var y = Math.floor(Math.random() * 20); var initA = document.getElementsByClassName('box-' + y + '-' + x)[0]; snakeHead = initA; //蛇頭 var b = initBFn(x, y); var initB = document.getElementsByClassName(b)[0]; arraySnake.push(initB); arraySnake.push(initA); initA.style.backgroundColor = '#9c9c9c'; initB.style.backgroundColor = '#9c9c9c'; arrayBox[y][x] = 1; arrayBox[b.split('-')[1]][b.split('-')[2]] = 1;}// 初始化蛇身function initBFn(x, y) { if (x != 19 && x != 0) { if (y != 19 && y != 0) { if (Math.random() > 0.5) { if (Math.random() > 0.5) { return 'box-' + y + '-' + (x + 1); } else { return 'box-' + y + '-' + (x - 1); } } else { if (Math.random() > 0.5) { return 'box-' + (y + 1) + '-' + x; } else { return 'box-' + (y - 1) + '-' + x; } } } else if (y == 0) { if (Math.random() > 0.5) { return 'box-0-' + (x + 1); } else { return 'box-0-' + (x - 1); } } else if (y == 19) { if (Math.random() > 0.5) { return 'box-19-' + (x + 1); } else { return 'box-19-' + (x - 1); } } } else if (x == 0) { if (y != 19 && y != 0) { if (Math.random() > 0.5) { return 'box-' + (y + 1) + '-0'; } else { return 'box-' + (y - 1) + '-0'; } } else if (y == 0) { if (Math.random() > 0.5) { return 'box-1-0'; } else { return 'box-0-1'; } } else if (y == 19) { if (Math.random() > 0.5) { return 'box-18-0'; } else { return 'box-19-1'; } } } else if (x == 19) { if (y != 19 && y != 0) { if (Math.random() > 0.5) { return 'box-' + (y + 1) + '-19'; } else { return 'box-' + (y - 1) + '-19'; } } else if (y == 0) { if (Math.random() > 0.5) { return 'box-1-19'; } else { return 'box-0-18'; } } else if (y == 19) { if (Math.random() > 0.5) { return 'box-18-19'; } else { return 'box-19-18'; } } }}// 隨機產生食物食物function randomFood() { var x = Math.floor(Math.random() * 20); var y = Math.floor(Math.random() * 20); if (!arrayBox[y][x]) { document.getElementsByClassName('box-' + y + '-' + x)[0].style = 'background-color:#9c9c9c;border-radius:50%'; arrayBox[y][x] = 1; food = document.getElementsByClassName('box-' + y + '-' + x)[0]; } else { addSnakeLength(); }}// 開始游戲function gameStart(arraySnake) { var Ax = arraySnake[1].className.split('-')[2]; var Ay = arraySnake[1].className.split('-')[1]; var Bx = arraySnake[0].className.split('-')[2]; var By = arraySnake[0].className.split('-')[1]; if (Ay == By) { if (Ax > Bx) { moveRight(); } else { moveLeft() } } else { if (Ay > By) { moveDown() } else { moveUp() } }}// 初始化運動,(方向:右左上下)function moveRight() { timekey = setInterval(function () { var nextBox = document.getElementsByClassName('box-' + arraySnake[arraySnake.length - 1].className.split('-')[1] + '-' + (parseInt(arraySnake[arraySnake.length - 1].className.split('-')[2]) + 1))[0]; if (nextBox) { arrayBox[arraySnake[arraySnake.length - 1].className.split('-')[1]][(parseInt(arraySnake[arraySnake.length - 1].className.split('-')[2]) + 1)] = 1; nextBox.style.backgroundColor = '#9c9c9c'; arraySnake.push(nextBox); arrayBox[arraySnake[0].className.split('-')[1]][arraySnake[0].className.split('-')[2]] = 0; arraySnake[0].style.backgroundColor = '#fff'; arraySnake.shift(); eatFood(); } }, 200);}function moveLeft() { timekey = setInterval(function () { var nextBox = document.getElementsByClassName('box-' + arraySnake[arraySnake.length - 1].className.split('-')[1] + '-' + (parseInt(arraySnake[arraySnake.length - 1].className.split('-')[2]) - 1))[0]; if (nextBox) { arrayBox[arraySnake[arraySnake.length - 1].className.split('-')[1]][(parseInt(arraySnake[arraySnake.length - 1].className.split('-')[2]) - 1)] = 1; nextBox.style.backgroundColor = '#9c9c9c'; arraySnake.push(nextBox); arrayBox[arraySnake[0].className.split('-')[1]][arraySnake[0].className.split('-')[2]] = 0; arraySnake[0].style.backgroundColor = '#fff'; arraySnake.shift(); eatFood(); } }, 200);}function moveUp() { timekey = setInterval(function () { var nextBox = document.getElementsByClassName('box-' + (parseInt(arraySnake[arraySnake.length - 1].className.split('-')[1]) - 1) + '-' + arraySnake[arraySnake.length - 1].className.split('-')[2])[0]; if (nextBox) { arrayBox[(parseInt(arraySnake[arraySnake.length - 1].className.split('-')[1]) - 1)][arraySnake[arraySnake.length - 1].className.split('-')[2]] = 1; nextBox.style.backgroundColor = '#9c9c9c'; arraySnake.push(nextBox); arrayBox[arraySnake[0].className.split('-')[1]][arraySnake[0].className.split('-')[2]] = 0; arraySnake[0].style.backgroundColor = '#fff'; arraySnake.shift(); eatFood(); } }, 200);}function moveDown() { timekey = setInterval(function () { var nextBox = document.getElementsByClassName('box-' + (parseInt(arraySnake[arraySnake.length - 1].className.split('-')[1]) + 1) + '-' + arraySnake[arraySnake.length - 1].className.split('-')[2])[0]; if (nextBox) { arrayBox[(parseInt(arraySnake[arraySnake.length - 1].className.split('-')[1]) + 1)][arraySnake[arraySnake.length - 1].className.split('-')[2]] = 1; nextBox.style.backgroundColor = '#9c9c9c'; arraySnake.push(nextBox); arrayBox[arraySnake[0].className.split('-')[1]][arraySnake[0].className.split('-')[2]] = 0; arraySnake[0].style.backgroundColor = '#fff'; arraySnake.shift(); eatFood(); } }, 200);}// 鍵盤操作拐彎document.addEventListener('keydown', function (e) { if (e.code == 'ArrowDown') { turnDown(); } else if (e.code == 'ArrowUp') { turnUp(); } else if (e.code == 'ArrowLeft') { turnLeft(); } else if (e.code == 'ArrowRight') { turnRight(); }}, false);// 下拐function turnDown() { if (arraySnake[arraySnake.length - 1].className.split('-')[1] == arraySnake[arraySnake.length - 2].className.split('-')[1]) { clearInterval(timekey); moveDown(); }}// 下拐function turnUp() { if (arraySnake[arraySnake.length - 1].className.split('-')[1] == arraySnake[arraySnake.length - 2].className.split('-')[1]) { clearInterval(timekey); moveUp(); }}// 左拐function turnLeft() { if (arraySnake[arraySnake.length - 1].className.split('-')[2] == arraySnake[arraySnake.length - 2].className.split('-')[2]) { clearInterval(timekey); moveLeft(); }}// 右拐function turnRight() { if (arraySnake[arraySnake.length - 1].className.split('-')[2] == arraySnake[arraySnake.length - 2].className.split('-')[2]) { clearInterval(timekey); moveRight(); }}// 蛇吃食物function eatFood() { var temp = food; if (arrayBox[food.className.split('-')[1]][food.className.split('-')[2]] == 0) { randomFood(); addSnakeLength(temp); }}// 增加長度在蛇尾function addSnakeLength(temp) { arraySnake.unshift(temp);}

全程獨自敲下來,敲了兩個多小時,基本功能都實現了,由于沒有參考任何東西,所以有很多很多需要優化的地方,點個贊吧

更多有趣的經典小游戲實現專題,分享給大家:

C++經典小游戲匯總

python經典小游戲匯總

python俄羅斯方塊游戲集合

JavaScript經典游戲 玩不停

java經典小游戲匯總

javascript經典小游戲匯總

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产伦精品一区二区三区在线播放| 国产乱人伦精品一区| 在线人成日本视频| а√天堂8资源在线| 色一区二区三区四区| 日本不良网站在线观看| 欧美精选视频一区二区| 国产99精品| 在线综合亚洲| 五月国产精品| 精品一区不卡| 国产一区日韩欧美| 免费的成人av| 免费在线欧美黄色| 久久精品电影| 中文久久精品| 青草国产精品久久久久久| 国产精品115| 99久久九九| 亚洲午夜免费| 国产一区二区三区网| 午夜欧美理论片| 久久国内精品视频| 久久视频一区| 亚洲一二av| 国产精品伦理久久久久久| 少妇精品导航| 日韩欧美在线精品| 黄毛片在线观看| 日韩精品一级二级| 精品精品99| 视频一区中文| 国产色99精品9i| 久久一级电影| 欧美一区不卡| 免费一二一二在线视频| 综合在线一区| 日韩精品专区| 国产亚洲高清在线观看| 国模 一区 二区 三区| 国产精品亚洲欧美一级在线| 中文字幕免费精品| 夜鲁夜鲁夜鲁视频在线播放| 欧美一区不卡| 久久大逼视频| 日韩免费高清| 欧美一区影院| 国产精品日本| 蜜臀91精品一区二区三区| 动漫av一区| 91成人在线网站| 午夜免费一区| 国产一区二区三区精品在线观看| 日韩在线观看一区二区| 久久国产日本精品| 久久精品午夜| 日韩av网站在线观看| 九九久久电影| 久久精品国产99国产精品| 亚洲制服少妇| 久久精品欧美一区| 国产精品欧美一区二区三区不卡| 亚洲少妇自拍| 91av亚洲| 免费亚洲一区| 亚洲毛片一区| 日韩一级精品| 久久国产免费| 日韩中文在线电影| 你懂的网址国产 欧美| 91欧美极品| 亚洲综合福利| 亚洲一区二区三区高清| 欧美日韩免费观看视频| 精品一区二区三区四区五区| 国产精品任我爽爆在线播放| 免播放器亚洲一区| 国产精品社区| 一区二区自拍| 欧美1级日本1级| 久久国产成人午夜av影院宅| 日本蜜桃在线观看视频| 精品一区二区三区免费看| 久久国产视频网| 日本午夜精品久久久| 日本综合精品一区| 日韩一区精品| 欧美一区二区三区久久精品| 欧美一级二级三级视频| 日本欧美在线| 欧美在线日韩| 日本电影久久久| 日韩国产一二三区| 91麻豆精品| 国产精品蜜月aⅴ在线| 国产伦精品一区二区三区视频| 国产精品亚洲综合久久| 欧美1区二区| 国产成人精品福利| 欧美好骚综合网| 日韩欧美二区| 成人久久一区| 欧美日韩水蜜桃| 美女毛片一区二区三区四区| 在线成人直播| 亚洲一区二区小说| 亚洲精品伦理| 欧美日韩一区二区三区四区在线观看| 日本不卡一区二区三区| 欧美日韩精品一区二区三区视频 | 精品欧美视频| 吉吉日韩欧美| 蜜桃一区二区三区| 日韩精品一级二级| 国产精品调教视频| аⅴ资源天堂资源库在线| 日韩伦理在线一区| 亚洲激情偷拍| 国产亚洲欧美日韩精品一区二区三区 | 成人日韩在线| 欧美日韩精品一本二本三本| 一区二区三区四区精品视频| 国产欧美啪啪| 日本不良网站在线观看| 国产精品毛片| 国产精品中文| 91亚洲自偷观看高清| 欧美1级日本1级| 91国内精品| 日韩中文欧美| 亚洲三级网址| 免费一级欧美片在线观看网站| 久久精品亚洲人成影院| 最新国产精品久久久| 精品国产网站| 亚洲综合精品四区| 欧美aaaaaa午夜精品| 午夜国产一区二区| 国产精品欧美在线观看| 国产一区亚洲| 国产乱码精品| 日韩不卡在线| 日本精品国产| 久久五月天小说| 欧美日韩一区二区国产| 亚洲a在线视频| 欧美偷窥清纯综合图区| 久久一区二区三区电影| 久久精品超碰| 午夜精品影院| 高潮久久久久久久久久久久久久| 欧美天堂亚洲电影院在线观看| 久久精品av麻豆的观看方式| 99热国内精品| 久久免费影院| 亚洲精品麻豆| 久久蜜桃精品| 久久影视三级福利片| 快she精品国产999| 日韩电影免费网站| 久久国产生活片100| 中文精品视频| 偷拍精品精品一区二区三区| 日韩精品国产欧美| 99日韩精品| 亚洲国产福利| 国产欧美在线| 日韩专区一卡二卡| 日韩大片在线观看| 国产精品极品国产中出| 亚洲欧美日韩国产综合精品二区| 国产精品蜜月aⅴ在线| 亚洲一区二区三区四区电影| 国产盗摄——sm在线视频| 欧美精品影院| 自拍自偷一区二区三区| 伊人久久婷婷| 久久精品免费一区二区三区 | 国产一区白浆| 神马午夜久久| 正在播放日韩精品| 欧美国产精品| 欧美日韩 国产精品| 鲁大师影院一区二区三区| 日韩中文首页| 日韩av在线播放网址| 国产精品白浆| 国产亚洲观看| 日韩av中文字幕一区二区| 亚洲专区视频| 亚洲精品乱码日韩| 中文字幕av亚洲精品一部二部| 美女网站久久| 丝袜a∨在线一区二区三区不卡| 黄色av日韩| 久久福利精品| 久久国产精品亚洲77777| 亚洲欧美日韩国产| 国产美女一区| 老牛影视一区二区三区|