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 keduafor
loop berulang di atas nilai-nilai. Kemudian, elemen dibuat dan ditambahkan kedeck
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.