Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-07-2014
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
como plantear bonificaciones por puntos en juego

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?
Responder Con Cita
  #2  
Antiguo 28-07-2014
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
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:

Código:
/* 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.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine

Última edición por Ñuño Martínez fecha: 28-07-2014 a las 12:51:25. Razón: Prefijar incremenos.
Responder Con Cita
  #3  
Antiguo 28-07-2014
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
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.

Última edición por aguml fecha: 28-07-2014 a las 16:06:19.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿cómo realizar una nube de puntos? sarias24 Varios 5 05-10-2010 14:31:57
Cómo no plantear las preguntas en estos foros (hilo cerrado) Victor B Varios 4 08-04-2008 23:05:47
Como resaltar puntos en un TCHart gironella OOP 2 12-03-2008 13:25:26
StrToFloat con puntos como decimales JosepZ Varios 3 31-10-2007 10:51:26
Estas invitado a plantear nuevas alternativas. FunBit Humor 6 12-08-2005 07:12:47


La franja horaria es GMT +2. Ahora son las 11:49:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi