Premissa:
Para quem está em rede, provavelmente enviou um ping de ou para algum dispositivo para garantir que tudo esteja conectado corretamente. A Cisco, uma empresa popular em rede [citação necessário] , possui um comando em seu IOS que se parece com isso:
( Fonte da imagem )
Seu desafio é recriar graficamente uma parte disso. As partes que estamos pulando são a primeira linha ( Type escape sequence to abort.
) inteiramente, junto com o endereço IP e os tempos de ida e volta.
Você começará emitindo o seguinte:
Sending 5, 100-byte ICMP Echos, timeout is 2 seconds:
Você simulará as solicitações de eco que saem. Cada solicitação começará aguardando 2 segundos e, em seguida, gerando a resposta. Uma resposta de eco bem-sucedida é representada por a !
, uma falha por .
. Na verdade, não enviaremos pacotes, mas para representar a perda de pacotes, seu programa deve escolher aleatoriamente entre as duas opções com uma chance diferente de zero para cada uma. Esta linha começará vazia e cada marca adicionará outro caractere.
Após o quinto eco, a linha de porcentagem será emitida e o programa deverá terminar. A linha de porcentagem estará no formato de
Success rate is $p percent ($s/5)
onde $p
está na regex 0|20|40|60|80|100
e $s
é o número de ecos bem-sucedidos. A tela deve ser atualizada após cada período de espera, redesenhando o novo estado ou anexando à linha de eco existente. Isso inclui a Sending
linha.
Exemplo de execução: (a contagem de marcações não deve ser exibida e existe para esclarecer como deve ser a saída a cada etapa)
#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:
Nenhuma entrada utilizável fornecida.
Resultado:
Qualquer formato razoável. Um exemplo de saída final é assim:
Sending 5, 100-byte ICMP Echos, timeout is 2 seconds:
...!!
Success rate is 40 percent (2/5)
Regras:
- Você deve anexar à linha de eco ou redesenhar a tela após cada marca.
!
e.
não precisa ser igualmente provável, apenas os dois possíveis.- Execuções sucessivas devem ser capazes de gerar resultados diferentes
- Gifs ou webms da sua saída seriam legais. Nenhum bônus ou qualquer coisa para isso embora.
- Lacunas padrão proibidas
- Isso é código-golfe