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

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

原生JS實(shí)現(xiàn)點(diǎn)擊數(shù)字小游戲

瀏覽:96日期:2024-04-01 16:03:02

原生JS實(shí)現(xiàn)點(diǎn)擊數(shù)字小游戲,供大家參考,具體內(nèi)容如下

最近公司在季度測(cè)試中出了一道很有趣的測(cè)試題,要求使用我們自己的黑科技?IVX來(lái)實(shí)現(xiàn),感興趣的朋友可以去了解哦,是真的黑科技,在這里我還是用原生JS來(lái)實(shí)現(xiàn)吧,題目是這樣的:

實(shí)現(xiàn)一個(gè)點(diǎn)擊數(shù)字的小游戲:依次點(diǎn)擊容器中隨機(jī)生成的數(shù)字元素,生成的數(shù)字元素會(huì)在5S后消失,你將憑借記憶點(diǎn)擊按照數(shù)字升序依次點(diǎn)擊生成的數(shù)字方可通過(guò)該關(guān)卡游戲。

話不多說(shuō)直接看運(yùn)行效果圖:

原生JS實(shí)現(xiàn)點(diǎn)擊數(shù)字小游戲

上代碼:

<!DOCTYPE html><html lang='en'> <head> <meta charset='UTF-8' /> <meta http-equiv='X-UA-Compatible' content='IE=edge' /> <meta name='viewport' content='width=device-width, initial-scale=1.0' /> <title>點(diǎn)擊數(shù)字小游戲</title> <style> #cointainer {margin: auto;height: 600px;width: 400px;background-color: rgb(37, 37, 37);position: relative; } .header {width: auto;text-align: center;margin: auto; } .parm {height: 60px;width: 60px;border-radius: 30px;position: absolute;text-align: center;line-height: 60px; } .parm:hover {cursor: pointer; } .todo {text-align: center;margin-top: 16px; } button {width: 100px;height: 30px;background-color: coral;border: none;outline: none; } </style> </head> <body> <div class='header'> <h1>點(diǎn)擊數(shù)字小游戲</h1> <p>5s后數(shù)字內(nèi)容會(huì)消失,憑借你的記憶按照數(shù)字升序依次點(diǎn)擊數(shù)字點(diǎn)可順利通關(guān) </p> </div> <div id='cointainer'></div> <div class='todo'> <button onclick='restart(6)'>重新開(kāi)始</button> <button onclick='nextPass()'>下一關(guān)</button> <button onclick='window.clearInterval(timmer2);window.clearTimeout(timmer1)' >停止計(jì)時(shí) </button> <p>時(shí)間</p> </div> </body> <script> let circleList = []; //circle構(gòu)造器 function getPosition() { let parm = { x: '', y: '' }; parm.x = Math.round(Math.random() * 340); parm.y = Math.round(Math.random() * 540); return parm; } //創(chuàng)建不重疊circle function createCircle(total) { if (circleList.length === 0) {circleList.push(getPosition()); } //限制創(chuàng)建次數(shù)200 for (let i = 0; i < 200; i++) {if (circleList.length < total) { let circle = getPosition(); let distan = []; for (let n = 0; n < circleList.length; n++) { let dis = Math.abs(circle.x - circleList[n].x) ** 2 + Math.abs(circle.y - circleList[n].y) ** 2; distan.push(dis); } if (Math.min(...distan) > 3600) { circleList.push(circle); }} else { break;} } } //創(chuàng)建8個(gè)circle createCircle(8); //隨機(jī)顏色選擇器 function selectColor() { let r = 100 + Math.round(Math.random() * 155); let g = 100 + Math.round(Math.random() * 155); let b = 100 + Math.round(Math.random() * 155); return `rgb(${r},${g},$)`; } //在DOM中創(chuàng)建circle let containner = document.getElementById('cointainer'); //構(gòu)造關(guān)卡 function creatGame(num) { circleList = []; createCircle(num); for (let i = 0; i < circleList.length; i++) {let node = document.createElement('span');containner.appendChild(node);node.className = 'parm';node.innerText = i + 1;node.style.left = circleList[i].x + 'px';node.style.top = circleList[i].y + 'px';node.style.backgroundColor = selectColor(); } } //點(diǎn)擊答案 let asw = []; //設(shè)置5s后開(kāi)始游戲 let start = function () { let list = document.querySelectorAll('span'); let right = ''; for (let i = 0; i < list.length; i++) {list[i].innerText = '';list[i].number = i + 1;right = right + (i + 1);list[i].addEventListener( 'click', function () { asw.push(list[i].number); if (asw.length === pass && asw.join('') === right) { window.clearInterval(timmer2); alert('恭喜過(guò)關(guān),你的用時(shí)為:' + time.toFixed(2) + 's'); asw = []; } else if (asw.length === pass && asw.join('') !== right) { asw = []; window.clearInterval(timmer2); alert('抱歉沒(méi)能過(guò)關(guān)'); } }, false); } }; let time = 0; let sumTime = function () { time = time + 0.01; document.querySelectorAll('p')[1].innerText = time.toFixed(2) + 's'; }; //初始關(guān)卡 let pass = 6; creatGame(pass); let timmer1 = setTimeout(start, 5000); let timmer2 = setInterval(sumTime, 10); //重新開(kāi)始 function restart(nowerPass) { while (containner.hasChildNodes()) {containner.removeChild(containner.firstChild); } pass = nowerPass; creatGame(nowerPass); clearTimeout(timmer1); clearInterval(timmer2); time = 0; timmer1 = setTimeout(start, 5000); timmer2 = setInterval(sumTime, 10); } //下一關(guān) function nextPass() { if (pass < 20) {pass++;restart(pass); } } </script></html>

至此一個(gè)很有趣的鍛煉大腦邏輯的小游戲分享完畢。

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

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 伊人网综合在线视频 | 日韩精品a在线视频 | 成年人xxxx | 久久综合九九亚洲一区 | 日韩一区国产二区欧美三 | 日韩在线1 | 国产成人综合久久综合 | 国产精品视频一区二区三区经 | 色综合久久中文 | 亚洲黄色在线视频 | 亚洲欧美日韩三级 | 精品久久久久久久久久久 | 美国一级黄色 | 精品亚洲在线 | 男女晚上日日麻批视频不挡 | 搞黄视频网站 | 亚洲综合图 | 网站在线你懂的 | 成人资源在线 | 成人精品一区二区久久久 | 亚洲精品久久久久久久福利 | 国产精品久久久久无毒 | 麻豆视频在线观看免费网站 | 国产中文字幕久久 | 在线精品视频在线观看高清 | 黄色一级黄色片 | 色中色在线视频 | 特黄特黄特色大片免费观看 | 伊人久久婷婷丁香六月综合基地 | 中文第一页 | 久久成人综合 | 国产尤物视频在线 | 国产精品国产精品 | 国产精品视频网址 | 亚洲欧美日韩高清专区一区 | 国产色婷婷精品综合在线 | 成人亚洲在线 | 新婚无套啪啪对白 | 亚洲欧美视频一区二区三区 | 亚洲欧美色一区二区三区 | 国产99视频在线 |