Escriba un programa que se ejecute indefinidamente y que informe cuántas instancias de sí mismo se están ejecutando actualmente. Cada instancia del programa también debe informar el orden en que se abrió de todas las demás instancias actualmente en ejecución.
Ejemplo
El usuario inicia el programa por primera vez; llamaremos a esta instancia 1. Se muestra la instancia 1 1/1
, porque es la primera instancia que se inicia de un total de 1 instancias actualmente en ejecución.
Mientras se ejecuta la Instancia 1, el usuario inicia el programa por segunda vez para convertirse en la Instancia 2. Ahora se muestra la Instancia 1 1/2
, siendo la primera instancia de un total de 2 instancias actualmente en ejecución. Se muestra la instancia 2 2/2
, porque es la segunda instancia de un total de 2 instancias actualmente en ejecución.
Digamos que el usuario continúa generando más instancias hasta que haya 5 de ellas. Con el fin de lanzamiento, sus salidas son: 1/5
2/5
3/5
4/5
5/5
.
Ahora, digamos que el usuario decide terminar la Instancia 3. La Instancia 4 se convierte en la nueva Instancia 3 y la Instancia 5 en la nueva Instancia 4, porque son respectivamente la tercera y cuarta instancias que se han lanzado de lo que ahora es un total de 4 instancias. Entonces, el cambio de salida de cada instancia sería el siguiente:
1/5
→1/4
2/5
→2/4
3/5
→ (Terminado)4/5
→3/4
5/5
→4/4
Reglas
- Puede generar los dos números (número de instancia, instancias totales) en cualquier formato razonable.
- Cada vez que se inicia o finaliza una instancia, todas las demás instancias deben actualizar sus salidas respectivas dentro de los 100 milisegundos.
- Si elige actualizar la salida imprimiendo en una nueva línea (u otro formato de salida "anexado"; en lugar de reemplazarla), debe imprimir solo cuando cambie el número de instancias, y no en cualquier otro momento.
- Este es el código de golf. El programa más corto en bytes gana.
- En su respuesta, se le recomienda que especifique qué debe hacer el usuario para abrir más de una instancia y / o grabar un screencast para demostrarlo.