Hola,
¿ Con qué método o cómo sería posible generar infinitas veces, un número, pero que cada vez que se generara, fuese la mitad (u otro valor) del anterior generado, pero partiendo de un número que asciende(éste será el nivel del usuario, ek: 1, 2, 3, 4…) ?
Ejemplo (valorAnterior / 2):
Se genera: 10
Se genera: 5
Se genera: 2.5
Se genera: 1.25
Se genera: 0.6…
…
Con ésto pretendo conseguir un sistema de puntuación y niveles para un pequeño juego (con el que estoy aprendiendo más JS), para que, cada vez que suba de nivel, desaparezcan cosas más rápido.
Y no quiero que el número generado llegue a 0 porque entonces las cosas ya “aparecen desaparecidas”. Por eso quiero numeros infinitos, pero cada vez más pequeños, pero sin llegar a 0, y así evitar hacer infinitos if
y hacer un código reutilizable y automático.
Muchas gracias!
Hola Alvaro,
No sé si todavía estas con ello o has llegado a la conclusión.
Con tu lógica, si el número no puede llegar a 0 y usar números negativos, creo que no es posible realizar lo que comentas.
Sí que podrías utilizar un número decimal para decrementar y que parezca infinita la reducción, pero al final será negativa.
Lo que podrías hacer, como se hace en algunos juegos, es utilizar un condicional y definir un valor mínimo para que aunque llegue a 0 siempre tengas un mínimo de elementos a visualizar.
En este punto el jugador habría alcanzado el nivel máximo de ventajas, de lo contrario no tendría sentido para el jugador seguir jugando, eso sí puedes hacer que el jugador siga subiendo de nivel sin más ventajas como ocurre en otros juegos o simplemente definir un nivel máximo.
Gracias, si, pensé pero no llegué a ninguna conclusión.
Tienes razón. No creo que se pueda. Crearé alternativas. Por ahora lo deje porque solo era un añadido más que estaba planteandome por hacer, de entre otros, pero pensaré algo, con las ideas también que me has dado. Gracias por responder!
Entiendo lo que buscas. Para generar infinitas veces un número igual a la mitad del número anterior, puedes utilizar un bucle en el código. Por ejemplo, puedes empezar con un número inicial y luego dividirlo por 2 en cada iteración del bucle.
He aquí un ejemplo en JavaScript:
let número = 10; // El número inicial
while (number > 0.001) { // Puedes ajustar este límite a tus necesidades.
console.log(número);
number /= 2; // Divide por 2 en cada iteración
}
Esto se utiliza a menudo en los juegos que tienen revisiones aquí https://casasdeapuestas-deportivas.com.co/codigo-promocional-william-hill/ más de una vez visto. En este ejemplo, el bucle seguirá generando números cada vez más pequeños dividiendo el número anterior por 2 en cada iteración. Puedes establecer el límite en el que quieres que se detenga el bucle según tus necesidades.