📜  JavaScript程序可随机播放纸牌

📅  最后修改于: 2020-09-27 05:29:32             🧑  作者: Mango

在这个例子中,您将学习编写一个JavaScript程序,该程序可以洗牌。

示例:随机洗牌
// program to shuffle the deck of cards

// declare card elements
let suits = ["Spades", "Diamonds", "Club", "Heart"];
let values = [
  "Ace",
  "2",
  "3",
  "4",
  "5",
  "6",
  "7",
  "8",
  "9",
  "10",
  "Jack",
  "Queen",
  "King",
];

// empty array to contain cards
let deck = [];

// create a deck of cards
for (let i = 0; i < suits.length; i++) {
    for (let x = 0; x < values.length; x++) {
        let card = { Value: values[x], Suit: suits[i] };
        deck.push(card);
    }
}

// shuffle the cards
for (let i = deck.length - 1; i > 0; i--) {
    let j = Math.floor(Math.random() * i);
    let temp = deck[i];
    deck[i] = deck[j];
    deck[j] = temp;
}

console.log('The first five cards are:');

// display 5 results
for (let i = 0; i < 5; i++) {
    console.log(`${deck[i].Value} of ${deck[i].Suit}`)
}

输出

The first five cards are:
4 of Club
5 of Diamonds
Jack of Diamonds
2 of Club
4 of Spades

在上述程序中, 西服变量包含卡的元素。

嵌套的for循环用于创建一副纸牌。

  • 我们需要创建一副纸牌,其中包含具有所有值的每套西装 。因此,第一个for循环遍历所有西装 ,第二个for循环遍历 。然后,创建元素并将其添加到deck数组。
  • 数组元素作为对象存储为:
    [{Value: "Ace", Suit: "Spades"},{Value: "2", Suit: "Spades"}.....]

第二个for循环用于洗牌。

  • Math.random()生成一个随机数。
  • Math.floor()通过将值减小到最接近的整数值来返回数字。
  • 051之间生成一个随机数,并且交换两个卡位置。

第三个for循环用于显示新卡座中的前五张卡。