Schreiben Sie ein Programm, das auf unbestimmte Zeit ausgeführt wird und angibt, wie viele Instanzen von ihm gerade ausgeführt werden. Jede Instanz des Programms sollte auch die Reihenfolge angeben, in der es von allen anderen derzeit ausgeführten Instanzen geöffnet wurde.
Beispiel
Der Benutzer startet das Programm zum ersten Mal - wir nennen dies Instanz 1. Instanz 1 wird angezeigt 1/1
, da es die erste Instanz von insgesamt 1 derzeit ausgeführten Instanzen ist.
Während Instanz 1 ausgeführt wird, startet der Benutzer das Programm ein zweites Mal, um Instanz 2 zu werden. Instanz 1 wird nun angezeigt 1/2
und ist die erste von insgesamt 2 derzeit ausgeführten Instanzen. Instanz 2 wird angezeigt 2/2
, da es sich um die zweite Instanz von insgesamt 2 derzeit ausgeführten Instanzen handelt.
Nehmen wir an, der Benutzer spawnt so lange mehr Instanzen, bis es 5 davon gibt. Um die Markteinführung, ihre Ausgänge sind: 1/5
2/5
3/5
4/5
5/5
.
Angenommen, der Benutzer entscheidet sich, Instanz 3 zu beenden. Instanz 4 wird dann zur neuen Instanz 3 und Instanz 5 zur neuen Instanz 4, da dies die dritte bzw. vierte Instanz ist, die von insgesamt 4 gestartet wurde Instanzen. Die Ausgabe jeder Instanz würde sich also wie folgt ändern:
1/5
→1/4
2/5
→2/4
3/5
→ (Abgebrochen)4/5
→3/4
5/5
→4/4
Regeln
- Sie können die beiden Zahlen (Instanznummer, Gesamtzahl der Instanzen) in jedem vernünftigen Format ausgeben.
- Jedes Mal, wenn eine Instanz gestartet oder beendet wird, müssen alle anderen Instanzen ihre jeweiligen Ausgaben innerhalb von 100 Millisekunden aktualisieren.
- Wenn Sie die Ausgabe aktualisieren möchten, indem Sie in eine neue Zeile drucken (oder ein anderes Ausgabeformat "Anhängen"; im Gegensatz zum Ersetzen), müssen Sie nur drucken, wenn sich die Anzahl der Instanzen ändert, und nicht zu einem anderen Zeitpunkt.
- Das ist Code Golf. Kürzestes Programm in Bytes gewinnt.
- In Ihrer Antwort werden Sie aufgefordert, anzugeben, was der Benutzer tun muss, um mehr als eine Instanz zu öffnen, und / oder einen Screencast aufzuzeichnen, um dies zu demonstrieren.