Program JavaScript untuk Mengocok Setumpuk Kartu

Contoh: Shuffle Deck of Cards

// 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}`)
}

Keluaran

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

Dalam program di atas, file jas dan nilai-nilai variabel berisi elemen kartu.

The bersarang for loop digunakan untuk membuat setumpuk kartu.

  • Kita perlu membuat setumpuk kartu yang berisi masing-masing jas dengan semua nilai-nilai. Jadi yang pertama for loop mengulang semua jas dan yang kedua for loop berulang di atas nilai-nilai. Kemudian, elemen dibuat dan ditambahkan ke deck Himpunan.
  • Elemen array disimpan sebagai objek sebagai:
    [{Value: "Ace", Suit: "Spades"},{Value: "2", Suit: "Spades"}.....]

Kedua for loop digunakan untuk mengocok setumpuk kartu.

  • Math.random() menghasilkan nomor acak.
  • Math.floor() mengembalikan angka dengan menurunkan nilai ke nilai bilangan bulat terdekat.
  • Nomor acak dihasilkan antara 0 dan 51 dan dua posisi kartu ditukar.

Ketiga for loop digunakan untuk menampilkan lima kartu pertama di tumpukan baru.