En este ejemplo, aprenderá a escribir un programa JavaScript que baraja una baraja de cartas.
Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de JavaScript:
- Ordenación de matriz de JavaScript ()
- JavaScript para bucle
Ejemplo: baraja de cartas
// 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)`) )
Salida
Las primeras cinco cartas son: 4 de Trébol 5 de Diamantes Jota de Diamantes 2 de Trébol 4 de Picas
En el programa anterior, las variables de palos y valores contienen los elementos de una carta.
El for
bucle anidado se utiliza para crear una baraja de cartas.
- Necesitamos crear una baraja de cartas que contenga cada palo con todos los valores. Entonces, el primer
for
ciclo itera sobre todos los trajes y el segundofor
ciclo itera sobre los valores. Luego, los elementos se crean y se agregan a ladeck
matriz. - Los elementos de la matriz se almacenan como un objeto como:
((Value: "Ace", Suit: "Spades"),(Value: "2", Suit: "Spades")… )
El segundo for
bucle se utiliza para barajar la baraja de cartas.
Math.random()
genera un número aleatorio.Math.floor()
devuelve el número disminuyendo el valor al valor entero más cercano.- Se genera un número aleatorio entre 0 y 51 y se intercambian dos posiciones de cartas.
El tercer for
ciclo se usa para mostrar las primeras cinco cartas en el nuevo mazo.