国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - js教程 - 原生JS實現點擊數字小游戲

原生JS實現點擊數字小游戲

2022-03-08 16:50@Coollin js教程

這篇文章主要為大家詳細介紹了原生JS實現點擊數字小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

原生JS實現點擊數字小游戲,供大家參考,具體內容如下

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

實現一個點擊數字的小游戲:依次點擊容器中隨機生成的數字元素,生成的數字元素會在5S后消失,你將憑借記憶點擊按照數字升序依次點擊生成的數字方可通過該關卡游戲。

話不多說直接看運行效果圖:

原生JS實現點擊數字小游戲

上代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
<!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>點擊數字小游戲</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>點擊數字小游戲</h1>
      <p>
        5s后數字內容會消失,憑借你的記憶按照數字升序依次點擊數字點可順利通關
      </p>
    </div>
    <div id="cointainer"></div>
    <div class="todo">
      <button onclick="restart(6)">重新開始</button>
      <button style="margin-left: 20px" onclick="nextPass()">下一關</button>
      <button
        style="margin-left: 20px"
        onclick="window.clearInterval(timmer2);window.clearTimeout(timmer1)"
      >
        停止計時
      </button>
      <p>時間</p>
    </div>
  </body>
  <script>
    let circleList = [];
    //circle構造器
    function getPosition() {
      let parm = { x: "", y: "" };
      parm.x = Math.round(Math.random() * 340);
      parm.y = Math.round(Math.random() * 540);
      return parm;
    }
    //創建不重疊circle
    function createCircle(total) {
      if (circleList.length === 0) {
        circleList.push(getPosition());
      }
      //限制創建次數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;
        }
      }
    }
    //創建8個circle
    createCircle(8);
    //隨機顏色選擇器
    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中創建circle
    let containner = document.getElementById("cointainer");
    //構造關卡
    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();
      }
    }
    //點擊答案
    let asw = [];
    //設置5s后開始游戲
    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("恭喜過關,你的用時為:" + time.toFixed(2) + "s");
              asw = [];
            } else if (asw.length === pass && asw.join("") !== right) {
              asw = [];
              window.clearInterval(timmer2);
              alert("抱歉沒能過關");
            }
          },
          false
        );
      }
    };
    let time = 0;
    let sumTime = function () {
      time = time + 0.01;
      document.querySelectorAll("p")[1].innerText = time.toFixed(2) + "s";
    };
    //初始關卡
    let pass = 6;
    creatGame(pass);
    let timmer1 = setTimeout(start, 5000);
    let timmer2 = setInterval(sumTime, 10);
    //重新開始
    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);
    }
    //下一關
    function nextPass() {
      if (pass < 20) {
        pass++;
        restart(pass);
      }
    }
  </script>
</html>

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/qq_44170536/article/details/115960438

延伸 · 閱讀

精彩推薦
  • js教程JS實現紙牌發牌動畫

    JS實現紙牌發牌動畫

    這篇文章主要為大家詳細介紹了JS實現紙牌發牌動畫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    計算機的皇帝5432022-01-04
  • js教程js加減乘除精確運算方法實例代碼

    js加減乘除精確運算方法實例代碼

    這篇文章主要給大家介紹了關于js加減乘除精確運算方法的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值...

    ``木頭人```8582022-01-04
  • js教程整理CocosCreator常用知識點

    整理CocosCreator常用知識點

    這篇文章主要介紹了整理CocosCreator常用知識點,這些知識點,平時幾乎都能用到,希望同學們看完后,可以自己去試一下,加深印象...

    代碼猴兒5352022-03-01
  • js教程微信小程序視頻彈幕發送功能的實現

    微信小程序視頻彈幕發送功能的實現

    這篇文章主要介紹了微信小程序視頻彈幕發送功能的實現,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的...

    保護我方豆豆5082021-12-21
  • js教程ES5和ES6中類的區別總結

    ES5和ES6中類的區別總結

    這篇文章主要給大家介紹了ES5和ES6中類的區別的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋...

    Totora612312021-12-16
  • js教程Javascript 模擬mvc實現點餐程序案例詳解

    Javascript 模擬mvc實現點餐程序案例詳解

    這篇文章主要介紹了Javascript 模擬mvc實現點餐程序案例詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參...

    LiOnTalKING12232021-12-18
  • js教程JavaScript canvas實現雨滴特效

    JavaScript canvas實現雨滴特效

    這篇文章主要為大家詳細介紹了JavaScript canvas實現雨滴特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    huangdong19317152021-12-29
  • js教程帶你徹底理解JavaScript中的原型對象

    帶你徹底理解JavaScript中的原型對象

    這篇文章主要介紹了帶你徹底理解JavaScript中的原型對象,文中有詳細的代碼介紹,對正在學習js的小伙伴們有一定的幫助,需要的朋友可以參考下...

    做人要厚道20139072022-03-01
主站蜘蛛池模板: 免费在线a | 免费观看av | 国产一区亚洲 | 天堂一区二区三区在线 | 男女深夜视频 | 91精品一区二区三区久久久久久 | 欧美大片一区 | 久久中文字幕一区 | 国产免费网址 | 一区二区三区四区在线播放 | 欧美一区二区三区在线观看视频 | 精品久久久久久久 | 精品成人在线 | 欧美一区二区三区在线 | 国产精品欧美一区二区三区 | 欧美激情精品久久久久 | 日韩亚洲视频 | 青青草久久久 | 一级视频在线播放 | 久久九精品 | 91亚洲精品| 日本激情视频一区二区三区 | 韩国精品一区二区 | 日韩6699人妻熟女毛片 | 亚州男人天堂 | 成人精品视频一区二区三区 | 欧美一级在线 | 亚洲精品久久久 | 国产欧美日韩综合精品 | 免费成人激情视频 | 国产成人免费 | 后人极品翘臀美女在线播放 | 国产精品久久久久永久免费观看 | 精品一二三区 | 久久久91精品国产一区二区三区 | 久久丫精品 | 日韩和欧美的一区二区 | 中文字幕av第一页 | 久久蜜桃精品一区二区三区综合网 | 欧美.com| 亚洲欧洲精品成人久久奇米网 |