【发布时间】:2016-01-29 00:32:37
【问题描述】:
你好 StackOverflow 的了不起的人, 我正在尝试使用 javascript 制作二十一点游戏。在我的代码中,我有两个功能。这些功能在“发牌”被按下时发出第一张牌,而在“击中”被按下时发出第二张牌。我将如何添加这两个函数来添加两张卡的值,以便我可以测试玩家是否超过了 21 的值?感谢您花时间阅读本文,谢谢!这是我的代码:
var score = 0;
var deck = ["ace", "ace", "ace", "ace", 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, "jack", "jack", "jack", "jack", "queen", "queen", "queen", "queen", "king", "king", "king", "king"];
function deal() {
var random = deck[Math.floor(Math.random() * deck.length)];
document.getElementById('result').innerHTML = random;
}
function hit() {
var random2 = deck[Math.floor(Math.random() * deck.length)];
document.getElementById('result2').innerHTML = random2;
}
var time = new Date();
document.getElementById("time").innerHTML = time.toDateString();
#deal {
position: fixed;
width: 50px;
height: 35px;
top: 500px;
left: 500px;
background-color: silver;
border-radius: 10px;
border-style: ridge;
}
#hit {
position: fixed;
width: 50px;
height: 35px;
top: 500px;
border-style: ridge;
border-radius: 10px;
}
body {
text-align: center;
font-size: 30px;
background: url("http://corporate.fortuna2000.be/imgs/background/red_poker3_xl.jpg");
}
#ace {
position: absolute;
top: 100px;
left: 100px;
}
#time {
position: absolute;
top: 590px;
right: 0px;
border-style: solid;
border-radius: 10px;
background-color: silver;
}
<div id="result"></div>
<div id="result2"></div>
<div id="time"></div>
<input type="button" value="deal" onclick="deal()" id="deal">
<input type="button" value="hit" onclick="hit()" id="hit">
【问题讨论】:
-
我猜你需要另一个函数来获取手中牌的总价值并检查它是否是
<= 21。 -
和另一行代码从牌组中移除卡片...
-
当您
hit时,您应该添加额外的卡,而不是替换卡。 -
@softwarenewbie7331 — 可以使用 splice 在与
var random …相同的行中完成。 deck 数组需要在每个新游戏上重新初始化(但 OP 还没有那么远……)。 -
您需要一个将卡片名称转换为值的函数。它可以得到所有DIV的
innerHTML,转换它们的值,然后加起来看是否超过21。
标签: javascript function blackjack