Notwen quer estudar a cinemática de corpos lançados de grandes alturas em um campo gravitacional uniforme, mas infelizmente ele não tem a possibilidade técnica de ir a lugares suficientemente altos e observar os objetos enquanto cai. Mas quem não quer ver avanços na ciência, então ... Vamos ajudar a Notwen a construir um simulador de gravidade!
Contexto físico
Um objeto caiu de uma altura ( sem velocidade inicial ) em um campo gravitacional uniforme, negligenciando efeitos atmosféricos, como arrasto ou vento, ganha velocidade e acelera em direção ao solo com o tempo. Essa "taxa de mudança" de velocidade em uma unidade de tempo é chamada aceleração gravitacional . Perto da superfície da Terra, é aproximadamente igual a , mas, para os propósitos deste desafio, usaremos o valor , o que significa que em um único segundo, um objeto aumenta sua velocidade em cerca de . Considere ter uma altura, que é um múltiplo dee imagine dividir essa altura em intervalos iguais, cada um commetros de comprimento. Notwen quer medir quanto tempo leva para que o objeto caia em cada um desses intervalos, então é isso que pretendemos calcular também. Acinemáticamoderna- ignorando os aspectos técnicos - nos diz que:
O desafio
Entrada: a altura da qual o objeto é lançado como: um múltiplo inteiro positivo de , ou o número de intervalos (entãoousignificaria que) - qual deles depende de você.
Saída: uma animação artística ASCII de um objeto em queda, que caiu da altura (detalhes abaixo).
A estrutura de um quadro de saída deve ser a seguinte:
- novas linhas anteriores ao "solo", representadas por pelo menos um caractere que não é um espaço em branco (por exemplo
@
). Pelo menos um dos caracteres do solo deve estar na vertical em que o objeto cai. - Outro caractere que não é um espaço em branco que representa o objeto (por exemplo
X
), diferente daquele que você escolheu para o chão. | X > | @ > A | > | or or or > | O > | > | > @@@ ^ ----- &&&
Regras
- A saída deve ser algum texto gravado em um console interativo (lavável), um GIF, um arquivo separado para cada quadro ou alguma outra técnica razoável de saída.
- Cada quadro deve substituir completamente o último quadro e estar no mesmo local.
- Você pode supor que o tempo necessário para que o compilador / intérprete produza o texto seja insignificante e a precisão mínima permitida para calcular as raízes quadradas seja de 2 casas decimais.
- Você pode obter entrada e fornecer saída através de qualquer método padrão , observando que essas brechas são proibidas por padrão. Isso é código-golfe , então tente concluir a tarefa no mínimo de bytes que você puder gerenciar no seu idioma preferido.
1: Sou indulgente quanto ao que constitui um quadro válido, porque quero permitir o que melhor se adequa à sua solução e não estou tentando adicionar coisas supérfluas ao desafio. Se algo não estiver claro, pergunte nos comentários.
chr(27)
?'\33'
deve ser ainda mais curto.2*5**.5
é20**.5
.C # (.NET Core) ,
201, 180 + 13 = 193 bytesPrecisa usar o sistema; por 13 bytes adicionais.
Estranhamente, o Console.Clear () não parece estar funcionando para mim no TIO. No entanto, isso funciona perfeitamente em um aplicativo de console no VS2017.
EDIT: Obrigado à Modalidade de Ignorância por encurtar o loop, apontando minha atribuição desnecessária de variáveis e uso desnecessário de System.Threading; (sobra da cópia do VS) e apontando que o terreno era necessário! Total de 8 bytes jogados até o momento com a adição do solo. Ty Ty!
Experimente online!
fonte