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

您可以将函数分配给数组字段并随机调用它们。

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

于 2013-01-03T15:23:04.917 回答
0

我并不是建议你应该这样做,但我只是为了彻底性提供一个替代答案。(请原谅我,如果代码是错误的。我对 JS 有点生疏。

{
    0: createPlusSum,
    1: createTakeSum
}[Math.floor(Math.random() * 2)](total);
于 2013-01-03T15:19:37.913 回答
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 回答