2013-07-25 57 views
1

即時通訊編寫一個簡單的西姆斯遊戲,即時通訊無能的如何做到這一點。如何製作基於數組的Simon Js遊戲?

我知道:

我需要創建兩個陣列,和一個電平(評分)可變

  • 隨機生成的數字從1至4個(含)需要被添加 到第一個數組,當按下四個按鈕中的一個時,如果第二個數組不是大小相同或大於第一個數組,則將其值 添加到第二個數組中。每次向第二個數組添加值 時,檢查值是否等於
    中第一個數組中相同的位置中的值,如果不是,則清除兩個數組,並將 設置爲levelvar爲1,並提示「gameover 「這意味着如果你得到一個
    錯誤,你不能繼續。如果第二個數組
    的長度與級別變量相匹配,則向數組1添加一個隨機數,清除
    數組二,增量levelvar。

但是,我在代碼方面無能爲力。

我的jsfiddle:http://jsfiddle.net/jbWcG/2/

JS:

var x = [] 
var y = [] 
var levelvar = 1 
document.getElementById("test").onclick= function() { 
document.getElementById("test").innerHTML=x 
}; 
document.getElementById("button1").onclick= function() { 
x.push("Red") 
}; 
document.getElementById("button2").onclick= function() { 
x.push("Green") 
}; 
document.getElementById("button3").onclick= function() { 
x.push("Yellow") 
}; 
document.getElementById("button4").onclick= function() { 
x.push("Blue") 
}; 

HTML:

<button id="button1">Red</button><br /> 
<button id="button2">Green</button><br /> 
<button id="button3">Yellow</button><br /> 
<button id="button4">Blue</button><br /> 
<p id="test">Click To see What you have clicked</p> 

我怎麼會做出兩個數組查看某個值是一樣的嗎?

比方說,生成的數組是:[1,2,3,4,1,2,3] 和我在位置5,我按2,我將如何檢查這兩個數字匹配? 在此先感謝

回答

2

檢查一次一個你的陣列的那個位置i最簡單的方法是x

if (gen_arr[i] == x) { 
    // matches 
} else { 
    // doesn't match 
} 

所以,如果你構思你的遊戲流暢運行,你會想在每次按下按鈕:

  1. 莫名其妙地跟蹤他們在哪個索引(可能有與每個按鈕按下計數器加一)
  2. 檢查gen_arr[i] == x(如果沒有則顯示遊戲結束)。

或者,而不是跟蹤該指數的,你可以調用gen_array.shift()獲得的第一項gen_array並從陣列中刪除,在流有點像這樣:

var gen_array = [1,2,3,4,1]; 

function press_button(button_pressed) { 
    var supposed_to_be = gen_array.shift(); 

    // at this point, on the first call, 
    // supposed_to_be = 1, and gen_array = [2,3,4,1] 

    if (supposed_to_be != button_pressed) { 

    // game over! 

    } else { 
    // you survive for now! 

    if (gen_array.length() == 0) { 
     // gen_array is empty, they made it through the entire array 
     // game is won! 
    } 
    } 
} 

雖然這代表着每一步的一般「檢查內容」,因此不推薦使用這種逐字逐句,因爲它很快會導致非結構化的遊戲。

我建議尋找到的東西叫做「遊戲狀態」圖,這基本上是流動,這對遊戲的每一個「國家」排行榜 - 而你的情況,包括至少

  1. 「顯示」了模式
  2. 等待按下按鈕
  3. 檢查,如果按下按鈕是正確的
  4. 遊戲結束
  5. 比賽贏得

並從每個狀態中,繪製「如何」從一個狀態轉換到下一個狀態的箭頭。您可以通過Google搜索查看示例。

一旦你有了一個好的遊戲狀態圖/流程圖,就可以更容易地將你的程序分解成特定的塊並更好地組織它......然後你通常可以準確地看到你需要編碼以及丟失/什麼是不缺的。