我正在尝试为Black Jack游戏编写脚本,但遇到了一些问题。这是我在头脑中包含的代码:
<script type="text/javascript">
var J = 10;
var Q = 10;
var K = 10;
var A = 11;
var deck = [1,2,3,4,5,6,7,8,9,10,J,Q,K,A];
function deal() {
var test = "hello";
var f_card = Math.floor(Math.random() * deck.length);
var s_card = Math.floor(Math.random() * deck.length);
var card1 = deck[f_card];
var card2 = deck[s_card];
if (card1 == J) {
card1 = "Jack";
}
else if (card1 == Q) {
card1 = "Queen";
}
else if (card1 == K) {
card1 = "King"
}
else if (card1 == A) {
card1 = "Ace"
}
if (card2 == J) {
card2 = "Jack";
}
else if (card2 == Q) {
card2 = "Queen";
}
else if (card2 == K) {
card2 = "King"
}
else if (card2 == A) {
card2 = "Ace"
}
var bucket = card1 + ", " + card2;
var res = f_card + s_card
document.getElementById("result").innerHTML = bucket;
document.getElementById("test").innerHTML = f_card + ", " + s_card;
if (res == 22) {
alert("Blackjack!")
}
}
</script>
正文如下:
<body>
<form>
<input type="button" value ="Deal" onclick="deal()" /><br /><br />
</form>
<div id = "result">
</div><br />
<div id = "test">
</div>
</body>
我添加了“test”div以查看交易中发生了什么,看起来“Jack”被分配给9以上的所有数组值。如何处理其他if语句?任何帮助都会非常感激。
答案 0 :(得分:1)
if (card1 == J) {
card1 = "Jack";
}
else if (card1 == Q) {
card1 = "Queen";
}
else if (card1 == K) {
card1 = "King"
}
假设你有一张卡== 10(杰克/女王/国王)
您使用if
进行测试。
第一个if
被命中,因为10 == J
即使它是女王/国王(也是= = 10)
因为杰克在if语句中被击中而其他ifs没有被运行
答案 1 :(得分:1)
将J,Q,K,A放在引号中:
var deck = [1,2,3,4,5,6,7,8,9,10,'J','Q','K','A'];
if (card1 == 'J') {
card1 = "Jack";
}
等。
答案 2 :(得分:1)
而不是card1
梯形图中的card2
和if else
使用“原始卡ID”,即
switch (f_card){
case 10: card1 = "Jack";
break;
case 11: card1 = "Queen";
break;
case 12: card1 = "King";
break;
case 13: card1 = "Ace";
break;
}