iT邦幫忙

2022 iThome 鐵人賽

DAY 1
1
自我挑戰組

30 天線上自學前端系列 第 3

[Day 3] [The Simon Game] 告知下一關、遊戲結束 | 遊戲完成!

  • 分享至 

  • xImage
  •  

預計下週末才要做出來的東西,沒想到今天就完成了。

昨天一直卡在玩家的遊戲規則。

遊戲規則是電腦一關給一個新提示,但玩家每一關都要按之前所有關卡的顏色。

遊戲規則是:
玩家已經到第三關。目前累積的顏色會有兩組,比如說已經累積了紅色、紅色,那第三關會給一個新顏色(假設是黃色),那在第三關就要依序按出:紅色、紅色、黃色。

我昨天一直卡著的地方是,Javascript 只會檢查我最後一個顏色是否對而已... 在這卡太久一個不小心就錯過 Day 2 發文時間而中斷了比賽......

今天查了 Array 用法,終於想通是怎麼寫了。

if (gamePattern[userClickedPattern.length-1] === userClickedPattern[userClickedPattern.length-1]) {

      console.log("success");




      if (userClickedPattern.length === gamePattern.length){

        // Call nextSequence() after a 1000 millisecond delay.
        setTimeout(function () {
          nextSequence();
        }, 1000);
        userClickedPattern = []

      }

    } else {

      console.log("wrong");
      failTransition();

      

    }

問題出在昨天沒有把 userClickedPattern = [] 寫在 function 後面,所以每次按都記得我所有按過的。應該要給一個空陣列,這樣玩家才能每次都從頭開始按,然後再去對比隨機給出來的顏色陣列。

這是課程中的截圖,玩起來會像是這樣:

另外因為這作業是為了要練習 jQuery,可是我改成用 Javascript, CSS, HTML,所以除了遊戲邏輯以外的功能就沒全部照著課程做 XD,但我覺得體驗上不會差太多啦哈哈哈。

我的成品:https://wscindy.github.io/simonGame/

課程中的範例:https://londonappbrewery.github.io/Simon-Game/


上一篇
[Day 2] [The Simon Game] 使用者按過的按鈕加上特效、告知目前關卡
下一篇
[Day 4] [The Unix Command Line] 前端告一段落,要開始了解些後端的東西
系列文
30 天線上自學前端72
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言