Cómo barajar un mazo de cartas?, Alguien me ayuda?
Publicado por principiante (4 intervenciones) el 26/03/2021 12:30:45
Buenos días, a ver si me podeis echar una mano con esto:
Estoy intentado hacer una función que baraje (mezcle) el mazo de cartas. Me planteé la función así:
1º- Creo un array como mazo de cartas. (Esto sin problema)
2º- Creo otro array que representa al nuevoMazo (inicialmente vacio).
3º- Selecciono aleatoriamente un objeto del array, lo inserto en la última posición del nuevoMazo.
4º- Elimino el objeto seleccionado del array mazo.
5º- Devuelvo el valor de nuevoMazo.
El código es este:
El resultado del nuevo mazo es un array vacío y por mas vueltas que le doy no veo el problema, a si que espero que alguno de vosotros me podáis orientar.
Dejo también la función para crear el mazo por si estuviera ahí el problema:
Gracias!
Estoy intentado hacer una función que baraje (mezcle) el mazo de cartas. Me planteé la función así:
1º- Creo un array como mazo de cartas. (Esto sin problema)
2º- Creo otro array que representa al nuevoMazo (inicialmente vacio).
3º- Selecciono aleatoriamente un objeto del array, lo inserto en la última posición del nuevoMazo.
4º- Elimino el objeto seleccionado del array mazo.
5º- Devuelvo el valor de nuevoMazo.
El código es este:
1
2
3
4
5
6
7
8
9
10
function barajar(mazo){
var mazo = crearmazo(); //Crea el mazo de cartas.
var nuevomazo = []
for(var i = 0 ; i>48 ;i++){
var j = Math.floor(Math.random() * (48)); // Número aleatorio.
nuevomazo[nuevomazo.length]={valor: mazo[j].valor, palo: mazo[j].palo}; //Insertar en última posición
mazo = mazo.splice(j, 1); //Elimina objeto del mazo
}
return nuevomazo
}
El resultado del nuevo mazo es un array vacío y por mas vueltas que le doy no veo el problema, a si que espero que alguno de vosotros me podáis orientar.
Dejo también la función para crear el mazo por si estuviera ahí el problema:
1
2
3
4
5
6
7
8
9
10
function crearmazo() {
var mazo = []
var palo = ["c", "d", "t", "P"]
for (var i = 1; i<=12; i++){
for (var j = 0; j<palo.length; j++){
mazo[mazo.length] = {valor: i, palo: palo[j]}
}
}
return mazo;
}
Gracias!
Valora esta pregunta


0