2014-02-20 65 views
1

我試圖創建一個簡單的棋盤遊戲純JavaScript,這我試圖讓像「打地鼠」的工作。我知道我可以用Canvas做到這一點,但是覺得我不會因爲太多而學到更多東西。查找一組隨機元素,並使用appendChild

我把所有的元素必要的,這顯示了完整的結構,但似乎無法弄清楚如何才能讓每個對象點擊隨機生成。

這是我的小提琴,http://jsfiddle.net/JoshuaWaheed/XaUyE/1/

我寫這個,var newLI = Math.random(li.appendChild(span));。我想告訴的計劃是,「選擇一個隨機組裏的和>標籤追加一個<跨度到它,這將是點擊」,但由於某種原因,它的其附加到所有李時珍,我知道能改寫爲li.appendChild(span);

我能做些什麼來解決這個問題?還有一種事件監聽器,可以查看是否所有的按鈕都被點擊過,並且做了另一個隨機選擇並追加?

+1

如何對這個? http://jsfiddle.net/Pisi2012/XaUyE/5/ – alexP

+0

這是真的很酷。我在理解是否正確,這與-Math.floor(的Math.random()* 2)== 1是說其舍入爲最接近的1乘以2之後? –

+1

Math.random()返回一個介於0.1 - 0.9之間的值。與2 = 0.2 - 1.8複合。 floor()將DOWNWARDS數字四捨五入爲最接近的整數。 0或1.如果是1,則增加範圍 – alexP

回答

3

Math.random()返回0至1 您可以使用下面的條件,有一些代碼運行或不隨機運行一個數字:

if(Math.random() < 0.3){ 
    // the code here has 33% chance of running 
} 

看看它是如何應用到你的代碼:http://jsfiddle.net/SpacePineapple/XaUyE/3/

+0

WOOOW,這很簡單。但爲什麼它需要小於0.3或0.9?每次點擊所有元素時,我會試着弄清楚如何添加一個事件監聽器。如果沒有,我會回到這裏,並會問:) –

+0

對不起,我沒有閱讀代碼中的評論。我現在明白了0.3。再次感謝:) –

+0

嗨@TastySpaceApple,有沒有使其產生與此代碼一個固定金額的方式嗎?我希望它每次追加五個對象,以便我可以告訴腳本 - 每次我的點數增加五點,生成一個新的五點。 –