<!doctype html>
<html lang="en">
<head>
<meta charset="utf=8" />
<title>Blackjack</title>
<link rel="stylesheet" href="blackjack.css" />
<script type="text/javascript">
var H2 = 2; var S2 = 2; var D2 = 2; var C2 = 2;
var H3 = 3; var S3 = 3; var D3 = 3; var C3 = 3;
var deck = new Array(H2, S2, D2, C2, H3, S3, D3, C3);
var new_deck = new Array();
var r;
document.write("deck = ")
for (r =0; r<deck.length; r++){
document.write(deck[r]);
}
document.write("</br>")
document.write("new deck = ")
for (r=0; r<new_deck.length; r++){
document.write(new_deck[r]);
}
document.write("</br>")
for (r=0;r<deck.length;r++){
var randomindex = Math.floor(Math.random()*deck.length);
new_deck.push(randomindex)
deck.pop(randomindex)
}
document.write("deck = ")
for (r =0; r<deck.length; r++){
document.write(deck[r]);
}
document.write("</br>")
document.write("new deck = ")
for (r=0; r<new_deck.length; r++){
document.write(new_deck[r]);
}
document.write("</br>")
</script>
</head>
<body>
</body>
</html>
很明显,这里并不是完整的21点游戏。这只是一个测试,通过在洗牌之前和之后打印两个副本(数组)的内容来查看洗牌数组是否工作正常。 我目前只使用8张卡片,4个2和4个3。 什么我从这个得到的是:洗牌阵列javascript
deck = 22223333
new deck =
deck = 2222
new deck = 7502
什么我希望得到的是:
deck = 22223333
new deck =
deck =
new deck = 23232323 (or any of the 8 numbers, generated randomly)
所以应该洗牌的8卡,我究竟做错了什么? 我只对JavaScript新手,但我以前使用过一些python。我在Python中做了类似的工作,并且工作完美,但我不确定这里有什么问题。 感谢您提前任何答案!
非常感谢!完美工作。现在,它已经可以工作了,我将不得不查看Fisher Yates函数并充分理解它,并且还要了解所有数组方法之间的差异。我认为现在可能需要比我想创建这个21点游戏更长的时间,但我仍会继续进行 –
一个问题:'while(--i)'是什么意思? –
@ DennisCallanan - 'while(--i)'表示减少'i',如果结果为真(例如非零),则继续使用while循环。如果减量后'i'的值为零,则停止'while'循环。 – jfriend00