2017-10-03 22 views
0

2つの異なる変数play1とplay2に0と10の間に2つの乱数を格納しようとしています。 PLAY1が6を取得する場合javascript onclickイベントで2つのランダムな値を作成

PLAY2の最大値は10マイナスPLAY1値となり、すなわち、PLAY2の最大値は、私が第2の値を格納するPLAY2をトリガすることができますどのように4

でしょうか? 2回目のクリックでトリガーする必要があります。

var min = 0; 
 
var max = 10; 
 
var play1; 
 
var play2; 
 

 

 
function myFunction() { 
 
    play1 = Math.floor(Math.random() * (max - min + 1)) + min; 
 
    max = 10 - play1 
 
    document.getElementById("result").innerHTML = play1; 
 
    
 
    if (play1 < 10) { 
 
    //trigger play2 
 
    } 
 
    
 
}
<button onclick="myFunction()">Click me</button> 
 
<p id="result"></p>

+0

単に 'PLAY2 = Math.floor(Math.random()*(最大値 - 最小+ 1))から変更+分;'それはない? –

+0

こんにちはJaromanda X、私は2番目の値が2番目のクリックでも発生する必要があることを忘れていたので質問を編集しました –

+0

同じボタンをクリックしますか?または別のもの? –

答えて

1

below-あなたのコードを更新しました。これは、関数がのためにあるものだ。

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

 
var min = 0; 
 
var max = 10; 
 
var play1; 
 
var play2; 
 

 
function myFunction() { 
 
    play1 = r(min, max); 
 
    play2 = r(min, max - (play1-min)); 
 

 
    document.getElementById("result").innerHTML = [play1, play2]; 
 
}
<button onclick="myFunction()">Click me</button> 
 
<p id="result"></p>

私は2番目のクリックでトリガーされる第2の値を必要とします。

このような

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

 
var min = 0; 
 
var max = 10; 
 
var play1; 
 
var play2; 
 
var nthClick = 0; 
 

 
function myFunction() { 
 
    ++nthClick; 
 
    if(nthClick & 1){ 
 
    //odd 
 
    play1 = r(min, max); 
 
    play2 = null; 
 
    }else{ 
 
    //even 
 
    play2 = r(min, max - (play1-min)); 
 
    } 
 
    document.getElementById("result").innerHTML = [play1, play2]; 
 
}
<button onclick="myFunction()">Click me</button> 
 
<p id="result"></p>

+0

それは上にスポットが、今私は間違った質問をした参照してください、私は2番目の値をクリックして起動する必要があります。間違いの私の謝罪 –

+0

@JoãoMateus私は答えを拡張しました。より良い? – Thomas

2

あなたは、単にplay2の値にあなたが使用してplay1の値を算出したのと同じ方法計算することができます - play2 = Math.floor(Math.random()*(max-min+1)) + min;を。私は自分自身を繰り返してはいけない

var min = 0; 
 
var max = 10; 
 
var play1; 
 
var play2; 
 

 

 
function myFunction() { 
 
    play1 = Math.floor(Math.random() * (max - min + 1)) + min; 
 
    max = 10 - play1 
 
    document.getElementById("result").innerHTML = play1; 
 
    
 
    if (play1 < 10) { 
 
    play2 = Math.floor(Math.random()*(max-min+1)) + min; 
 
    } else { 
 
    play2 = 0; 
 
    } 
 
    document.getElementById("result2").innerHTML = play2; 
 
    
 
}
<button onclick="myFunction()">Click me</button> 
 
<p id="result"></p> 
 
<p id="result2"></p>

+0

その場にいるが、私は間違った質問をしているのを見て、2回目のクリックで2番目の値が必要になる。間違いに対する私の謝罪 –

1

おそらく、この

var min = 0; 
 
var max = 10; 
 
var play1; 
 
var play2; 
 

 

 
function myFunction() { 
 
    var target = document.getElementById("result"); 
 
    var firstNum = parseInt(target.innerHTML); 
 
    if (isNaN(firstNum)) { // first click 
 
     play1 = Math.floor(Math.random() * (max - min + 1)) + min; 
 
     target.innerHTML = play1; 
 
    } else { 
 
     play2 = Math.floor(Math.random() * ((10 - firstNum) - min + 1)) + min; 
 
     // do what with it????? you haven't shown! 
 
     document.getElementById("result2").innerHTML = play2; 
 
    } 
 
}
<button onclick="myFunction()">Click me</button> 
 
<p id="result"></p> 
 
<p id="result2"></p>

1

クリック数にコントロールを追加してみてください。 コードをコピーしてトーマスの答え

var controlVariable = 1; 
 

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

 
var min = 0; 
 
var max = 10; 
 
var play1; 
 
var play2; 
 

 
function myFunction() { 
 
    if (controlVariable == 1) { 
 
    play1 = r(min, max); 
 
    controlVariable++; 
 
    } 
 
    else if (controlVariable == 2) { 
 
    play2 = r(min, max - (play1-min)); 
 
    controlVariable = 1; 
 
    } 
 

 
    document.getElementById("result").innerHTML = [play1, play2]; 
 
}
<button onclick="myFunction()">Click me</button> 
 
<p id="result"></p>

+0

これです!できます!コントロール変数と素晴らしいヒント、私はそれを得るためにしばらくかかったが、私はあなたが何をしたかを参照してください。ありがとうございます。 –

関連する問題