Noticias

¡Ayuda a la Comunidad GM, haz una donación!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - BssString

Páginas: 1
1
Preguntas y respuestas / Problema con recursividad
« en: Marzo 25, 2020, 06:34:38 am »
Estimados

Tengo un problema místico con un juego de estrategia de construcción. Quizás el problema parezca simple, pero no me funciona el código.
Estoy realizando un código de recursividad que correrá en mi IA al inicio del juego.

La idea es simple:
El robot puede gastar sus recursos para construir edificios, y si se queda sin recursos, tendrá que esperar para seguir construyendo.

No quiero que los bots suban los edificios al azar, quiero que cada bot tenga una personalidad diferente que le haga llevar ciertos edificios diferentes a cierto nivel y le de "señales" al player de la estrategia que está tomando para que el player pueda arruinar su estrategia o perecer en el intento.

La idea es que el robot calcule cuál es el orden en el que debe subir sus edificios para reducir al máximo el tiempo de construcción. Algunos edificios aumentan la producción en un monto fijo, otros la aumentan la producción de forma porcentual y otros reducen el tiempo de creación de los edificios.

Para programar la estrategia del robot, usé un sistema de "nodos" o "ramas" de decisión. El robot toma todas las decisiones posibles al mismo tiempo en todos los órdenes de construcción posibles y luego compara el tiempo que se demoró en subir TODOS los edificios por los diferentes caminos y elije el menor.

Al menos esa es la teoría, porque en la práctica Game Maker me arroja un error en la iteración número 32 diciendo que no puedo usar un sistema recursivo.
Código: [Seleccionar]
Este es el error que aparece:
PerformEvent recursion depth failure - check for infinite loops, check objects for parenting

Alguien tiene alguna idea de cómo resolver este problema?

2
Estimados

Mi duda está enfocada en la eficiencia, porque la verdad es que es algo que sí pude hacer...
Quiero almacenar varios valores (un número entre 0 a 4000) en una celda de una DS Grid (quizás 3 o 4 valores en la misma celda).
Ej: que la celda x,y contenga estos 3 valores al mismo tiempo: 300 1 3850

He probado algunas cosas, pero no me convencen mis métodos y quiero saber si alguien lo ha hecho alguna vez de forma eficiente.

Hasta ahora probé 3 cosas:

1- Crear 3 DS Grid diferentes, es el peor método porque es el menos eficiente y en el que más lento se trae la info.

2- Almacenar carácteres binarios, el problema es que sólo acepta un rango de 0 a 255 y quiero almacenar valores de 0 a 4000. Almacenando 2 binarios juntos (y después hacer un cálculo) me causaba errores y bugs raros, sobre todo cuando intentaba leer el cero.

3- Guardar los números como texto, separados por un delimitador. Hasta el momento es el mejor método que he encontrado, es el más eficiente y el que hace más rápido la lectura/escritura de la info para el juego.
El problema es que el código se ve horrible y muchas veces me confundo cuando quiero leer / escribir data en la grid.

Alguna idea?

Páginas: 1