Cuéntanos qué está pasando:
Resolví el conteo de cartas de esta manera, lo probe para ver los resultados y verificar lo que me piden se muestre, y si lo hace bien. pero freecodecamp no me acepta mi solución.
existe algún problema son la sintaxis del código, me equivoque ortograficamente?
Tu código hasta el momento
let count = 0;
function cc(card) {
// Cambia solo el código debajo de esta línea
if(card >= 2 && card <= 6){
count++;
}else if(card === 10 || card === "J" || card === "Q" || card === "K" || card === "A"){
count--;
}else if(count > 0){
return count + " Bet";
}else if(count <= 0){
return count + " Hold";
}
return "Change Me";
// Cambia solo el código encima de esta línea
}
cc(2); cc(3); cc(4); cc(5); cc(6);
Información de tu navegador:
El agente de usuario es: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.50
Desafío: JavaScript básico - Conteo de cartas
Enlaza al desafío:
if (count > 0) {
return count + " Bet";
} else {
return count + " Hold";
}
1 Like
Hola,
Como te muestra zaklina, aunque no explica más, es el problema.
Estas usando varios else if para todas las acciones y debes separar la logica en 2 bloques:
- La lógica de la suma o resta del conteo según la carta (Que tienes bien)
- La lógica de qué resultado devuelves según el resultado de la lógica anterior.
Por lo tanto, el primero compruebas el paso 1 en un if y else y debes separar el segundo paso en otro if y else independiente.
De lo contrario ocurre que en el proceso actual solo está entrando en el primer if y segundo if.
Si te fijas en las comprobaciones te dice que tienes que devolver el contador con un espacio y “Bet” o “Hold” según el resultado porque nunca pasa por esos 2 últimos if
2 Likes
Mi español no es lo suficientemente bueno como para dar explicaciones
Podemos desglozar este ejercicio
Usando " switch/case "
let count = 0;
let word = "";
function cc(card) {
// Only change code below this line
switch (card){
case 2:
case 3:
case 4:
case 5:
case 6:
count++;
break;
case 7:
case 8:
case 9:
word = "Hold";
break;
case 10:
case 'J':
case 'Q':
case 'K':
case 'A':
count--;
break;
default:
return "Invalid";
break;
}
if(count > 0) {
word = "Bet";
return count + " " + word;
}
word = "Hold";
return count + " " + word;
// Only change code above this line
}
cc(2); cc(3); cc(7); cc('K'); cc('A');
O tambien:
Usando " if/else "
Yo haria el if de la siguiente manera:
En lugar de:
if (card >=2 && card <=6)
else if {card == 10 || (card >= 'A' && card <= 'Q'))
//Ojo que la Q es la ultima de las letras en el abecedario. Llevan un orden lexico.
Combino ambos de esta forma:
if (card <=6) {
count++;
}
else if (card >= '10')) {
count--;
}