Scrivi un programma a esecuzione indefinita che riporta quante istanze di se stesso sono attualmente in esecuzione. Ogni istanza del programma dovrebbe inoltre riportare l'ordine in cui è stata aperta da tutte le altre istanze attualmente in esecuzione.
Esempio
L'utente avvia il programma per la prima volta: chiameremo questa istanza 1. 1/1Viene visualizzata l'istanza 1 , poiché è la prima istanza da avviare su un totale di 1 istanze attualmente in esecuzione.
Mentre l'istanza 1 è in esecuzione, l'utente avvia il programma una seconda volta per diventare l'istanza 2. Ora viene visualizzata l'istanza 1 1/2, essendo la prima istanza su un totale di 2 istanze attualmente in esecuzione. 2/2Viene visualizzata l'istanza 2 , poiché è la seconda istanza su un totale di 2 istanze attualmente in esecuzione.
Supponiamo che l'utente continui a generare più istanze fino a quando ce ne sono 5 . In ordine di lancio, le loro uscite sono: 1/5 2/5 3/5 4/5 5/5.
Ora, supponiamo che l'utente decida di chiudere l'istanza 3. L'istanza 4 diventa quindi la nuova istanza 3 e l'istanza 5 la nuova istanza 4, perché sono rispettivamente la terza e la quarta istanza che sono state lanciate da quello che ora è un totale di 4 le istanze. Quindi la modifica di ogni istanza nell'output sarebbe la seguente:
1/5→1/42/5→2/43/5→ (Terminato)4/5→3/45/5→4/4
Regole
- È possibile generare i due numeri (numero istanza, istanze totali) in qualsiasi formato ragionevole.
- Ogni volta che un'istanza viene avviata o terminata, tutte le altre istanze devono aggiornare i rispettivi output entro 100 millisecondi.
- Se si sceglie di aggiornare l'output stampando su una nuova riga (o in un altro formato di output "accodante", al contrario della sostituzione), è necessario stampare solo quando il numero di istanze cambia e non in qualsiasi altro momento.
- Questo è il codice golf. Vince il programma più breve in byte.
- Nella tua risposta, sei invitato a specificare cosa l'utente deve fare per aprire più di un'istanza e / o registrare uno screencast per dimostrare.
