洗撲克牌程序為經典的變數交換

步驟:
1)由原陣列每次遍歷隨機從中拋出一張牌2)隨機牌賦值給暫存牌
3)始存牌賦值給隨機牌
4)暫存牌賦值給終存牌
實作代碼
var cards = 54; // 以一副斗地主為例13 × 4???? + 2 = 54
function wash(cards) {
var inputCard = ['A?', 'A?', 'A?', 'A?', '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?', 'J?', 'J?', 'J?', 'J?', 'Q?', 'Q?', 'Q?', 'Q?', 'K?', 'K?', 'K?', 'K?', '大?', '小?'], // 始存牌和終存牌
tempCard, // 暫存牌
randomCard; // 隨機牌
for (var j = 0; j < cards; j++) { // 洗牌程序
randomCard = Math.floor(Math.random() * cards);
tempCard = inputCard[randomCard];
inputCard[randomCard] = inputCard[j];
inputCard[j] = tempCard;
}
console.log(inputCard);
/* 檢查隨機元素是否有重復 */
var checkArr = {};
for (var i = 0; i < cards; i++) {
var char = inputCard[i]; // 回傳索引物件陣列
if (checkArr[char]) {
checkArr[char]++; // 累積出現次數加1,"object[key] = 1 "為每個遍歷的物件屬性賦值
} else {
checkArr[char] = 1; // 若第一次出現,次數記為1
}
}
console.log(checkArr); // 輸出完整的物件,記錄每個字符及其出現次數
}
wash(cards);
結果輸出
已洗牌一次

檢查重復


轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/163907.html
標籤:JavaScript
上一篇:CSS 知識點復習
下一篇:Flask websocker
