2016-07-18 5 views
-2

enter image description here자바 스크립트 무작위 우답

다른 슬롯 사이에 임의로 잘못된 번호를 생성하고 싶습니다.

예 : 옳은 대답은 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

난 당신이 자바 스크립트에 대한 질문을 게시보고, 나는 그 언어를 가정 답변을 게시하고있다. 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

간단한 방법으로 배열을 만들 수 있습니다. 배열에 필요한 값/길이가 될 때까지 올바른 값을 밀어 넣은 다음 난수를 만드는 루프를 만들어 배열 안에 있지 않으면 루프를 추가합니다.

관련 문제