In dit voorbeeld leer je een JavaScript-programma te schrijven dat een pak kaarten schudt.
Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende JavaScript-programmeeronderwerpen:
- JavaScript-matrix sorteren ()
- JavaScript voor loop
Voorbeeld: stapel kaarten schudden
// 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 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)`) )
Uitvoer
De eerste vijf kaarten zijn: 4 van Club 5 of Diamonds Jack of Diamonds 2 of Club 4 of Spades
In het bovenstaande programma bevatten de variabelen voor kleuren en waarden de elementen van een kaart.
De geneste for
lus wordt gebruikt om een pak kaarten te maken.
- We moeten een pak kaarten maken met elke reeks met alle waarden. Dus de eerste
for
lus herhaalt zich over alle kleuren en de tweedefor
lus herhaalt de waarden. Vervolgens worden de elementen gemaakt en aan dedeck
array toegevoegd . - De array-elementen worden als een object opgeslagen als:
((Value: "Ace", Suit: "Spades"),(Value: "2", Suit: "Spades")… )
De tweede for
lus wordt gebruikt om het spel kaarten te schudden.
Math.random()
genereert een willekeurig getal.Math.floor()
geeft het getal terug door de waarde te verlagen tot het dichtstbijzijnde gehele getal.- Er wordt een willekeurig nummer gegenereerd tussen 0 en 51 en twee kaartposities worden verwisseld.
De derde for
lus wordt gebruikt om de eerste vijf kaarten in de nieuwe stapel weer te geven.