2013-01-03 116 views
1

我正在爲小學生製作一個「捶打鼴鼠」風格的遊戲,他們必須點擊正確的數字,以符合給定的總和。jQuery - 隨機選擇數字

目前該程序正在生成這樣的附加總和。

function createPlusSum(total) { 
    console.log(total) 
    var int1 = Math.ceil(Math.random() * total); 
    var int2 = total - int1; 
    $('#target').html(int1 + ' + ' + int2 + ' = ?'); 
} 

我爲減法再次這樣做,它的工作原理,但我不知道從哪裏何去何從的問候隨機加法或減法的問題是否產生。這是產生減法問題的函數。

function createTakeSum(total) { 
    console.log(total) 
    var int1 = Math.ceil(Math.random() * total); 
    var int2 = total + int1; 
    $('#target').html(int2 + ' - ' + int1 + ' = ?'); 
} 

我使用它來創建除了總結

createPlusSum(total); 

我怎麼會說我想

createPlusSum(total); 

createTakeSum(total); 

回答

1

試試這個:

function createSum() { 
      total = Math.ceil(Math.random() * 10); 
    if(Math.random() > 0.5) 
    { 
     createTakeSum(total); 
    } else { 
     createPlusSum(total) 
    } 
} 
+0

我已經試過你的方法和它的作品。不過出於某種原因,每個數字都有9的答案。爲什麼? @geedubb – sMilbz

+0

http://jsfiddle.net/pUwKb/24/我已經試了一次,每個答案是6.有一個去@geedubb – sMilbz

+0

我編輯了上述答案來排序。原因在於您的總額在文檔加載時最初只設置一次。使用上面的代碼,每次調用createSum()時都會生成一個新值() – geedubb

1

我想再次使用隨機數:

var rand = Math.floor(Math.random()*2); 

switch (rand) { 
case 0: 
    createPlusSum(total); 
    break; 
case 1: 
    createTakeSum(total); 
    break; 
} 
0

我並不認爲這是你應該怎麼做,但我只是提供徹底的備選答案。 (請原諒我,如果代碼是錯誤的。我有點生疏JS。

{ 
    0: createPlusSum, 
    1: createTakeSum 
}[Math.floor(Math.random() * 2)](total); 
0

您可以將功能分配給數組字段,並呼籲他們隨機。

var func = new Array(); 
func[0] = function createPlusSum(total) {....}; 
func[1] = function createTakeSum(total) {....}; 

var rand = Math.floor(Math.random() * func.length); 
func[rand](total); 

這應該做的伎倆,你可以根據需要添加任意數量的功能,只需將它們附加到「func」-array

0

下面是一個在給定範圍內創建隨機「添加」或「減去」問題的腳本,在console.log中回答:

<div id="target"></div> 
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.3.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    var total = {low: 10, high: 30}; // range 
    jQuery(document).ready(function() { 
    var total = Math.floor(Math.random() * (total.high - total.low) + total.low); 
    var int1 = Math.floor(Math.random() * total); 
    var int2 = total - int1; 
    if (Math.random() > 0.5) { // add 
     var question = int1 + ' + ' + int2 + ' = ?'; 
     var answer = total; 
    } 
    else { // subtract 
     var question = total + ' - ' + int1 + ' = ?'; 
     var answer = int2; 
    } 
    $('#target').html(question); 
    console.log('Correct answer: ' + answer); 
    }); 
</script> 

這裏的工作jsFiddle example