Premisa:
Para aquellos en redes, lo más probable es que haya enviado un ping ao desde algún dispositivo para asegurarse de que todo esté conectado correctamente. Cisco, una compañía popular en redes [cita requerida] , tiene un comando para ello en su IOS que se ve así:
Su desafío es recrear gráficamente una parte de esto. Las partes que estamos omitiendo son la primera línea ( Type escape sequence to abort.
) por completo, junto con la dirección IP y los tiempos de ida y vuelta.
Comenzará generando lo siguiente:
Sending 5, 100-byte ICMP Echos, timeout is 2 seconds:
Luego simulará las solicitudes de eco que salen. Cada solicitud comenzará esperando 2 segundos y luego generará la respuesta. Una respuesta de eco exitosa está representada por a !
, una fallida por .
. En realidad no enviaremos paquetes, pero para representar la pérdida de paquetes, su programa debe elegir aleatoriamente entre las dos opciones con una probabilidad distinta de cero para cada una. Esta línea comenzará vacía y cada marca agregará otro carácter.
Después del quinto eco, se emitirá la línea de porcentaje y el programa debería terminar. La línea de porcentaje tendrá el formato de
Success rate is $p percent ($s/5)
donde $p
está en regex 0|20|40|60|80|100
y $s
es el número de ecos exitosos. La pantalla debe actualizarse después de cada período de espera redibujando el nuevo estado o agregando a la línea de eco existente. Esto incluye la Sending
línea.
Ejemplo de ejecución: (El recuento de ticks no debe mostrarse y está ahí para aclarar cómo debería verse la salida en cada paso de tiempo)
#Tick 0
Sending 5, 100-byte ICMP Echos, timeout is 2 seconds:
#Tick 1
Sending 5, 100-byte ICMP Echos, timeout is 2 seconds:
.
#Tick 2
Sending 5, 100-byte ICMP Echos, timeout is 2 seconds:
.!
#Tick 3
Sending 5, 100-byte ICMP Echos, timeout is 2 seconds:
.!.
#Tick 4
Sending 5, 100-byte ICMP Echos, timeout is 2 seconds:
.!.!
#Tick 5
Sending 5, 100-byte ICMP Echos, timeout is 2 seconds:
.!.!.
Success rate is 40 percent (2/5)
Entrada:
No se proporcionan datos utilizables.
Salida:
Cualquier formato razonable. Un resultado final de ejemplo se ve así:
Sending 5, 100-byte ICMP Echos, timeout is 2 seconds:
...!!
Success rate is 40 percent (2/5)
Reglas:
- Debe agregar a la línea de eco o volver a dibujar la pantalla después de cada marca.
!
y.
no tiene que ser igualmente probable, solo ambas posibles.- Las ejecuciones sucesivas deben ser capaces de generar resultados diferentes.
- Los gifs o webms de tu salida serían geniales. Sin embargo, no hay bonificación ni nada por ello.
- Lagunas estándar prohibidas
- Esto es código golf