8. Reto final: una tienda de generadores
transferir lo aprendido a una economía nueva, sin un grafo resuelto.
Objetivo: transferir lo aprendido a una economía nueva, sin un grafo resuelto. Necesitas: la ruta principal hasta configuración en DataTables; no necesitas las ampliaciones.
El encargo
Crea una copia de la cartera llamada BP_TiendaGeneradores y su widget. El jugador empieza con 500 monedas, produce 25 por clic y compra generadores. El primero cuesta 100; cada generador que ya posee aumenta en 50 el precio del siguiente. Empieza con cero generadores.
Tu solución debe leer su configuración desde una tabla propia, calcular el coste, comprobar el saldo, gastar solo si la operación puede completarse y actualizar la interfaz. Conserva el número de generadores en una variable Owned; para este ejercicio puedes usar un Scientific Number y convertirlo a texto para mostrarlo. Actualiza Owned solo después de un gasto correcto.
Entrega una solución que puedas explicar
- Botones para producir, comprar uno, guardar y cargar. Puedes añadir comprar tres si mantienes la misma regla de precios.
- Saldo y unidades reales separados del texto mostrado. Usa el formato que tenga sentido para la interfaz.
- Rechazo visible de una compra imposible sin modificar saldo ni unidades.
- Guardado de Balance y Owned. Cargar solo el saldo haría perder la progresión del precio.
- Ramas para fila ausente, dato inválido y fallo de guardado/carga. Los valores iniciales solo corresponden a una nueva partida.
Compruébalo sin mirar la solución
| Acción desde una partida nueva | Saldo | Owned |
|---|---|---|
| Comprar tres, juntos o uno a uno | 50 | 3 |
| Intentar comprar el siguiente, que cuesta 250 | 50 | 3 |
| Producir ocho veces | 250 | 3 |
| Comprar uno | 0 | 4 |
| Guardar y recuperar en otra sesión | 0 | 4 |
El siguiente precio después de cargar debe ser 300. Si vuelve a 100, has perdido Owned o calculas con una constante incorrecta.
Una posible estrategia, después de intentarlo
Lee la configuración de una fila y comprueba Row Found y sus valores. Calcula el coste con Arithmetic Purchase Cost, Num Items = 1, Price Start = 100, Price Add = 50 y Current Owned = Owned. Comprueba Is Success; después Can Afford y Try Subtract en la cartera Normal. Solo tras un descuento correcto incrementa Owned y actualiza el widget. Extiende BP_MiPartidaCartera con Owned y carga ambos valores sin reinicializar después. Para estas entradas pequeñas válidas, las sumas no plantean un límite de rango; en un sistema general valida también el nuevo contador antes de comprometer una compra.
Puedes dar por terminado el recorrido cuando: justificas el coste de cada compra, el rechazo no altera el estado y el guardado conserva tanto el dinero como la progresión. La exportación y el empaquetado no forman parte de este reto. Continúa con una ampliación cuando aparezca esa necesidad en tu proyecto.
Tu progreso se guarda solo en este navegador y se conserva al cambiar de idioma.