0

基本的に私は、2枚のカードが乱数ジェネレーターに従って配られるブラックジャックプログラムに似たプログラムを作成しています。同じカードが同時に2回配られる可能性があります(つまり、2つのハートの女王が同時に現れる)。そのイベントが発生する回数のカウンターを作成したいのですが、ifステートメントを実装すると、結果に影響するため、2枚のカードは常にまったく同じになります...誰かが私がここで間違っていることを教えてもらえますか?コードは次のとおりです。

function dealHand() {
var randomCardOne = Math.floor ((Math.random() *13) +2);
var randomCardTwo = Math.floor ((Math.random() *13) +2);
    if (randomCardOne = randomCardTwo) {identicalCards()};
} 

var identicalPairs = 0;
function identicalCards(){
    document.getElementById("identical").value=++identicalPairs;
}
4

2 に答える 2

2

あるカードの価値を別のカードに割り当てています

if (randomCardOne = randomCardTwo) {identicalCards()};

する必要があります

if (randomCardOne == randomCardTwo) {identicalCards()};

最初のケースでは、randomCardTwoの値が割り当てられた後、randomCardOneが「真実」であるかどうかを評価しているだけです。

それ以降===の代わりに使用する可能性があるかどうかを検討してください==

2 == '2' // yields true

2 === '2' // yields false

この場合は問題ではありませんが、他の場合は問題になる可能性があるため、この点に注意してください。===もっと厳しいのでこだわるようにしています。

于 2013-03-10T18:20:32.457 に答える
1

=を使用しています。これは、JavaScriptの代入演算子です。==を使用する必要があります

例えば

if (randomCardOne == randomCardTwo) {identicalCards()};
于 2013-03-10T18:19:10.770 に答える