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/1
Viene 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/2
Viene 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/4
2/5
→2/4
3/5
→ (Terminato)4/5
→3/4
5/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.