1

私は小学生向けの「モグラたたき」スタイルのゲームを作成しています。このゲームでは、与えられた合計に応じて正しい数字をクリックする必要があります。

現在、プログラムはこのような加算合計を生成しています。

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);
4

5 に答える 5

1

もう一度乱数を使用します:

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

switch (rand) {
 case 0:
  createPlusSum(total);
  break;
 case 1:
  createTakeSum(total);
  break;
}
于 2013-01-03T15:13:51.470 に答える
1

これを試して:

function createSum() {
            total = Math.ceil(Math.random() * 10);
    if(Math.random() > 0.5)
    {
        createTakeSum(total);
    } else {
        createPlusSum(total)
    }
}
于 2013-01-03T15:15:27.857 に答える
0

私はこれがあなたがそれを行うべき方法であることを示唆していませんが、私は徹底のための代替の答えを提供しているだけです。(コードが間違っている場合はご容赦ください。私はJSに少し錆びています。

{
    0: createPlusSum,
    1: createTakeSum
}[Math.floor(Math.random() * 2)](total);
于 2013-01-03T15:19:37.913 に答える
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」配列に追加するだけです。

于 2013-01-03T15:23:04.917 に答える
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の例です

于 2013-01-03T16:04:23.240 に答える