PDA

Ver la Versión Completa : como plantear bonificaciones por puntos en juego


aguml
28-07-2014, 10:16:40
Pues sigo con el juego de las tablas de multiplicar que habia hecho para mi niña y ella me ha dicho que le gustaria que cuando se consiguieran muchos puntos te diera mas "vidas".
El juego lo que hace es que te va preguntando aleatoriamente operaciones de las tablas de multiplicar y por cada acierto te da puntos y por cada fallo incrementa en 1 el numero de errores. Cuando el numero maximo de errores es alcanzado se acaba el juego.
La idea es que, por ejemplo, cada 5000 puntos te decremente en uno el numero de errores siempre y cuando este no sea 0. Podria hacer algo como "if(EditPuntos->Text.toDouble() % 5000 == 0)" pero ¿y que pasa si por ejemplo no conseguimos 5000 justos?
Tambien pensé en algo como "if(EditPuntos->Text.toDouble() / (5000 * contador) >= 0)" donde contador empezaria valiendo 1 y se incrementaría cada vez que se cumpliese esta condicion.
¿que opinais? ¿alguna otra idea?

Ñuño Martínez
28-07-2014, 12:49:00
Se me ocurre una posible solución, usando la división en lugar del resto (o módulo):

Primero, una variable que podemos llamar "VidasExtra". Esta es "0" al empezar la partida. Entonces puedes hacer lo siguiente:


/* Comprobamos si alcanzó los siguientes 5.000 puntos. */
while (((int)(EditPuntos->Text.toDouble() / 5000)) > VidasExtra) {
++VidasExtra; /* Ha obtenido una nueva vida extra. */
--NumErrores; /* Eliminamos unos de los errores. */
}


Muchos paréntesis, lo sé, pero más vale prevenir que depurar.

aguml
28-07-2014, 16:01:05
pues creo que es algo tan valido como mi segunda opcion. En mi segunda opcion hay que comparar con 1. Me quedo con tu opcion que hay una operacion menos.