カードのデッキをシャッフルするJavaScriptプログラム

例:カードのデッキをシャッフルする

// program to shuffle the deck of cards

// declare card elements
const suits = ["Spades", "Diamonds", "Club", "Heart"];
const 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 ループはすべてを繰り返します スーツ そして2番目 for ループは繰り返します 。 次に、要素が作成され、に追加されます。 deck アレイ。
  • 配列要素は、次のようにオブジェクトとして格納されます。
    [{Value: "Ace", Suit: "Spades"},{Value: "2", Suit: "Spades"}.....]

二番目 for ループは、カードのデッキをシャッフルするために使用されます。

  • Math.random() 乱数を生成します。
  • Math.floor() 値を最も近い整数値に減らして数値を返します。
  • 間で乱数が生成されます 0 そして 51 そして、2枚のカードの位置が交換されます。

第3 for ループは、新しいデッキの最初の5枚のカードを表示するために使用されます。



Hope this helps!

Source link