2016-07-18 13 views
-2

enter image description hereJavascript random right Answer

他のスロット間でランダムに間違った番号を生成したいと思います。

例:正しい答えは4ですが、他のスロットに正しい答えの間に間違った答えを与えたいと思います。

誰でも私にこれを達成する手がかりを与えることができますか?事前にありがとう!

私の悪い英語で申し訳ありませんが、あなたは私の質問をしないでください。

var operators = { 
     "signOne": [ 
      { 
       sign: "+", 
       method: function(a,b) {return a+b} 
      }, 
      { 
       sign: "-", 
       method: function(a,b) { return a-b} 
      } 
     ]}; 
var selectedOperatorA = Math.floor(Math.random()*operators.signOne.length); 
this.hiddenTotalValue = operators.signOne[selectedOperatorA].method(this.valueA, this.valueB); 

ここに私の正解の出力があります。

答えて

1

することはでき:

  • 正しい答え、小さな間違った答えと大きな間違った答え
  • ソートカスタムランダム関数のリストを含むリストを作成

コード:

var answer = 9 - 5, 
    list = [ 
     answer, 
     answer - 1 - ((Math.random() * 10) | 0), 
     answer + 1 + ((Math.random() * 10) | 0) 
    ]; 

list.sort(function(a, b) { return Math.random() - 0.5; }); 

console.log(list); 

出力例:

[2, 8, 4] 

リスト内の正解の位置は、list.indexOf(answer);で与えられます。

+0

これは、中間値を選択することで勝つことができるクイズになります。プレイヤーは、パターンに気づいたらすぐに答えを見つけるために、数学のタスクを解決する必要はありません。 –

+0

@MalteKöhrer私は完全に同意しますが、私はOPが求めていると思います。実際には、回答のポジションをシャッフルするかどうかは指定していませんでした。これは私自身の前提です。 – Arnauld

+0

お返事ありがとうございます。 –

0

あなたは本当の答えcalcAnswer()を計算して、限りresult < answer(4または任意のあなたの場合)のように番号を生成本当の答えよりもcalcOtherAnswers()小さい乱数を生成する関数を作成することができます。

+0

この方法でパターンを作成します。正しい答えは常に答えの最大値です – eltonkamami

0

Math.random()を使用してみてください。乱数を生成する関数です。

HTML

<div id="first"></div> 
<div id="second"></div> 
<div id="third"></div> 

JS

var first = Math.floor((Math.random() * 10) + 1); 
var second = Math.floor((Math.random() * 10) + 1); 
while(second === first){ 
    second = Math.floor((Math.random() * 10) + 1); 
} 
var third = Math.floor((Math.random() * 10) + 1); 
while(third === first || third === second){ 
    third = Math.floor((Math.random() * 10) + 1); 
} 

$("#first").html(first); 
$("#second").html(second); 
$("#third").html(third); 
0

私はあなたのjavascriptのために質問を投稿し、私はその言語を想定して答えを投稿しています参照してください。 Mozillaのdocumentationより、関数を使用して最大値と最小値を選択できます。

function getRandomInt(min, max) { 
    return Math.floor(Math.random() * (max - min)) + min; 
} 

分の適切な値に入れ、ここに

0
var operators = { 
     "signOne": [ 
      { 
       sign: "+", 
       method: function(a,b) {return a+b} 
      }, 
      { 
       sign: "-", 
       method: function(a,b) { return a-b} 
      } 
     ]}; 
var selectedOperatorA = Math.floor(Math.random()*operators.signOne.length); 
this.hiddenTotalValue = operators.signOne[selectedOperatorA].method(this.valueA, this.valueB); 

最大は私の右の答えの出力です。

0

これを行う簡単な方法は配列を持つことです。配列に必要なサイズ/長さがあるまで、正しい値をプッシュしてから、乱数を作成し、配列内になければ追加します。