Cuando programas software de cualquier tipo, uno de los pasos más importantes es probarlo para detectar fallos.
Esto es importante para terminar de asegurarnos de que el programa hace lo que debe hacer (y no hace cosas que no debería).
Veamos un ejemplo reciente en Preludio de Fanón:

Empezamos pasando por la posada para curar a los personajes y que tengan sus PS y PT al máximo. Por ahora todo bien.
El problema llega en el momento que participo en un combate.

¡Los PS y PT totales de todo el grupo se han igualado a los de Miguel!
Tras comprobar que efectivamente esto ocurre nada más empezar el combate, reviso el código para buscar donde falla.
Para empezar, previo a cada combate la partida se guarda, pero trucandolo para que los PS de los personajes se queden a 1 y los PT a 0. Así, si el jugador abandona el juego en mitad de la batalla se vera penalizado por ello.
Para ello, temporalmente pongo a esos valores la salud y energía de los personajes previo a guardar. Antes de ello, guardo en variables temporales los valores de PS (ps) y PT (pt) totales. He aquí el código.

Como son variables temporales de las que me quería librar tras usarlas, use «var», que deberia eliminarlas despues. El problema es que «var» funciona como una variable global, por lo que cada vez que almacenaba un nuevo valor de «s», se perdia el anterior, y al querer recuperar los ps se daba un mismo valor para todos.
Por lo tanto, he tenido que hacer un ligero ajuste.

Las variables donde se guardan el estado de los personajes han pasado a ser simples variables locales. Esto asegura que cada personaje tenga su variable de estado para recuperar sus PS y PT tras que se haya realizado el guardado, lo que soluciona el bug.
