2016-07-18 11 views
-2

enter image description hereJavascript zufällige richtige Antwort

Ich möchte falsche Nummer zufällig zwischen anderen Steckplätzen generieren.

ZB: die richtige Antwort ist 4, aber ich möchte andere Schlitze geben die falsche Antwort zwischen der richtigen Antwort geben.

Kann mir jemand einen Hinweis geben, um dies zu erreichen? Vielen Dank im Voraus!

Sorry für mein schlechtes Englisch, wenn Sie meine Frage nicht bekommen.

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

Hier ist die Ausgabe meiner richtigen Antwort.

Antwort

1

Sie können:

  • eine Liste Erstellen Sie die richtige Antwort, eine kleinere falsche Antwort und eine größere falsche Antwort
  • Sortieren Sie die Liste mit einem benutzerdefinierten Zufallsfunktion

Code enthält:

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

Beispielausgabe:

[2, 8, 4] 

Bei Bedarf wird die Position der richtigen Antwort in der Liste durch list.indexOf(answer); angegeben.

+0

Das würde zu einem Quiz führen, das Sie gewinnen können, indem Sie den mittleren Wert wählen. Der Spieler würde die mathematischen Aufgaben nicht lösen müssen, um die Antwort zu finden, sobald er das Muster bemerkt hat. –

+0

@ MalteKöhrer Dem stimme ich vollkommen zu, aber ich denke, das ist es, was das OP verlangt. Eigentlich hat er nicht angegeben, ob die Positionen der Antworten überhaupt gemischt werden sollten. Das ist meine eigene Annahme. – Arnauld

+0

Vielen Dank für Ihre Antwort. –

0

Sie können die wirkliche Antwort calcAnswer() berechnen und dann eine Funktion erstellen, um Zufallszahlen zu erzeugen, die calcOtherAnswers() geringer ist als die wirkliche Antwort ist, wo, solange die result < answer (4 oder was auch immer in Ihrem Fall) dann eine Nummer generieren.

+0

Sie erstellen ein Muster auf diese Weise.die richtige Antwort ist immer das Maximum der Antworten – eltonkamami

0

Versuchen Sie es mit Math.random(); Funktion zum Erzeugen von Zufallszahlen.

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

Ich sehe Sie die Frage Javascript geschrieben, und ich bin eine Antwort veröffentlichen diese Sprache vorausgesetzt. Von der documentation bei Mozilla können Sie Ihre max und min mit einer Funktion wählen.

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

put in den richtigen Wert von min und max

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

hier ist die Ausgabe meiner richtigen Antwort.

0

Eine einfache Möglichkeit wäre ein Array. Sie geben den richtigen Wert ein und erstellen dann eine Schleife, die Zufallszahlen erzeugt und sie addiert, wenn sie noch nicht im Array sind - bis das Array die erforderliche Größe/Länge aufweist.

Verwandte Themen