我正在用Javascript制作二十一点游戏,该游戏需要为每张卡制作对象,以使多张卡等于10。然后我呼叫一个随机数,并将相应的卡推入阵列DealerArr,我的问题是何时需要将这些对象在数组中的值加在一起,这似乎是不可能的,这是代码。
var dealerArr = [];
var playerArr = [];
var dealerTotal = 0;
var playerTotal = 0;
var two = {
value: 2
}
var three = {
value: 3
}
var four = {
value: 4
}
var five = {
value: 5
}
var six = {
value: 6
}
var seven = {
value: 7
}
var eight = {
value: 8
}
var nine = {
value: 9
}
var ten = {
value: 10
}
var jack = {
value: 10
}
var queen = {
value: 10
}
var king = {
value: 10
}
var ace = {
value: 11
}
function calcTotal(arr) {
var sum = 0;
for (var object of arr) {
sum += object.value;
}
return sum;
}
while (calcTotal(dealerArr) < 17) {
var randomCard = (Math.floor(Math.random() * 13) + 1)
if (randomCard = 1) {
dealerArr.push(two);
} else if (randomCard = 2) {
dealerArr.push(three);
} else if (randomCard = 3) {
dealerArr.push(four);
} else if (randomCard = 4) {
dealerArr.push(five);
} else if (randomCard = 5) {
dealerArr.push(six);
} else if (randomCard = 6) {
dealerArr.push(seven);
} else if (randomCard = 7) {
dealerArr.push(eight);
} else if (randomCard = 8) {
dealerArr.push(nine);
} else if (randomCard = 9) {
dealerArr.push(ten);
} else if (randomCard = 10) {
dealerArr.push(jack);
} else if (randomCard = 11) {
dealerArr.push(queen);
} else if (randomCard = 12) {
dealerArr.push(king);
} else if (randomCard = 13) {
dealerArr.push(ace);
}
console.log(dealerTotal)
}
答案 0 :(得分:1)
Jonas是正确的,在JS中,单个=是一个赋值,而==是一个比较,而===是一个严格的比较(值和类型比较)
答案 1 :(得分:1)
problem是您在=
语句中使用==
而不是if
。
在JS(以及更多其他语言)中,单等号执行assignment,而双和三等号执行comparision。
因此,请改用这种格式:
var dealerArr = [];
var playerArr = [];
var dealerTotal = 0;
var playerTotal = 0;
var two = {
value: 2
}
var three = {
value: 3
}
var four = {
value: 4
}
var five = {
value: 5
}
var six = {
value: 6
}
var seven = {
value: 7
}
var eight = {
value: 8
}
var nine = {
value: 9
}
var ten = {
value: 10
}
var jack = {
value: 10
}
var queen = {
value: 10
}
var king = {
value: 10
}
var ace = {
value: 11
}
function calcTotal(arr) {
var sum = 0;
for (var object of arr) {
sum += object.value;
}
return sum;
}
while (calcTotal(dealerArr) < 17) {
var randomCard = (Math.floor(Math.random() * 13) + 1)
if (randomCard == 1) {
dealerArr.push(two);
} else if (randomCard == 2) {
dealerArr.push(three);
} else if (randomCard == 3) {
dealerArr.push(four);
} else if (randomCard == 4) {
dealerArr.push(five);
} else if (randomCard == 5) {
dealerArr.push(six);
} else if (randomCard == 6) {
dealerArr.push(seven);
} else if (randomCard == 7) {
dealerArr.push(eight);
} else if (randomCard == 8) {
dealerArr.push(nine);
} else if (randomCard == 9) {
dealerArr.push(ten);
} else if (randomCard == 10) {
dealerArr.push(jack);
} else if (randomCard == 11) {
dealerArr.push(queen);
} else if (randomCard == 12) {
dealerArr.push(king);
} else if (randomCard == 13) {
dealerArr.push(ace);
}
console.log(dealerTotal)
}