<!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