roll()
という関数を作成しました。これはダイスのロールを扱います。私はロールの値を読んで、ロールが6回連続して2回連続してヒットするようにして、プレイヤーのターンを中断して次のプレイヤーに回すことを試みます。2つの連続した値がJavaScriptの変数の値と一致しているかどうかを調べる
私はダイス値を正しく読み取ることができますが、6行を2回チェックする方法を見つけようとしています。
これは私の関数である:
このようなボタンによってトリガーされるroll = function(){
if (gamePlaying){
// 1. Get a random number
//var dice = Math.floor(Math.random() * 6) + 1; //1 to 6 randomly
var dice = 6;
//2. Display the result
var diceDOM = document.querySelector('.dice');
diceDOM.style.display = 'block';
diceDOM.src = 'images/' + 'dice-' + dice + '.png';
//3. Update the roundScore IF the rolled number is not 1
// for type coersion, we need to use !== and not !=
if(dice !== 1) {
//add score
roundScore += dice; // same as roundScore = roundScore + dice
//it outputs to a div of ID = #myId
document.querySelector('#current-' + activePlayer).textContent = roundScore;
} else {
alert('Next Player')
nextPlayer();
}
// Is this right?
for(var i = 1; i >= 2; i++){
if (dice == 6){
console.log('sixes');
}
}
}
}
:
document.querySelector('.btn-roll').addEventListener('click', function(){
roll();
});
私はこのCODEPEN
P.S.にゲームをロードランダムな関数の下にdice = 6;
を置くので、2つの6つを得るまでゲームをプレイする必要はありません。それをコメント解除し、ダイス=数学関数をコメントアウトすると、6つだけを得ることになります。
「これは正しいのですか? forループの先頭にコメントする。つまり、これは正しいアプローチですか?私はループを試し続けなければならないのでしょうか、すでに私は離れていますか? score[]
に渡されている。しかし、私はそれを行うことができます
ところで
、2シックスが出てくる行う場合、全体のスコアが削除されては...私は笑多くのおかげだと思います。
1つのロールよりも長く持続する必要がある値(スコアといくつのロールが数えられたかについてのカウンター)は、関数よりも高いスコープを持つ変数に格納する必要があります。そうすれば、あなたの関数は、新しいロールが起こったときにこれらの値をチェックし、それに応じて機能することができます。 –
'for(var i = 1; i> = 2; i ++){' =>何をしようとしていますか?これは決して真実ではない – Fefux
@Fefux私は努力している。 – LOTUSMS