0

基本上我正在创建一个类似于二十一点程序的程序,其中两张牌根据随机数生成器发牌,同一张牌可能同时发两次(即同时出现两张红桃皇后)和我想创建一个事件发生次数的计数器,但是当我实现 if 语句时,它会影响结果,因此两张卡总是完全相同......有人可以告诉我我在这里做错了什么? 代码如下:

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 回答