Situación: Hay varias entidades en un entorno simulado, que tiene una noción artificial de tiempo llamada "tics", que no tiene ningún vínculo con el tiempo real. Cada entidad se turna para moverse, pero algunas son más rápidas que otras. Esto se expresa por un retraso, en tics. Así que la entidad A puede tener un retraso de 10 y B 25. En este caso, el orden de turno iría:¿Qué estructura (s) de datos respaldar una cola de Final Fantasy ATB? (una cola de espera)
A A B A A
Me pregunto qué estructura de datos para su uso. Al principio pensé automáticamente "cola de prioridad", pero los retrasos son relativos a "hora actual", lo que complica las cosas. Además, habrá entidades con retrasos más grandes y no es imprevisible que el programa se ejecutará a través de millones de tics. Parece tonto que un contador interno se construya cada vez más alto cuando los retrasos se mantienen relativamente pequeños y no aumentan.
Entonces, ¿cómo resolverías esto?
Si en lugar de ordenar el montón por "tiempo de espera" lo pide por "el tiempo en el que esta entidad luego tomará medidas", entonces no tiene que disminuir el "tiempo de espera" de cada entidad. –
Al contar, es posible que tenga que tener en cuenta el vuelco una vez que exceda los límites de Int o Int64 (si su batalla es larga). – vfilby
Quise decir el tiempo hasta la siguiente acción, pero el tiempo de espera fue menos tipeo. – BeWarned