Imprima, no STDOUT, um padrão que mostre em que direção uma bola quicando seguirá.
As seguintes premissas são feitas:
- A bola começa no canto superior esquerdo:
0, 0
com velocidade inicial zero. - A gravidade é
9.8ms^-2
exatamente em direção ao chão (y positivo.) - A bola pesa
500g
exatamente. - A bola salta a 45 ou 135 graus no chão, a menos que você queira adicionar os cálculos apropriados para adicionar trajetórias variáveis. (Pontos arbitrários de bônus!)
- A bola tem um coeficiente
constante de molade restituição / bouncyness constante de0.8
exatamente. - A bola é perfeitamente esférica e não se deforma quando bate.
- A sala tem 25 caracteres, 130 caracteres de largura. Cada xey é de 1 metro e cada posição da bola representa uma amostra discreta - o período exato é deliberadamente não especificado, mas a tela deve deixar o caminho da bola suficientemente claro. A saída deve mostrar o caminho da bola, não apenas a posição final.
- O piso e a bola devem ser indicados usando caracteres em STDOUT, que podem ser os mesmos. A presença de nenhuma bola ou superfície do piso deve ser indicada com um caractere de espaço.
- Você pode assumir o arredondamento para três casas decimais em qualquer cálculo. (As soluções que usam puramente números inteiros podem estar particularmente interessadas nessa regra.)
- A simulação para quando a bola não se move do chão ou sai da sala (
x > width of area
.) - O programa deve simular o caminho da bola, não simplesmente carregá-lo de um arquivo ou codificá-lo de alguma forma no programa. O teste para isso será opcionalmente alterar uma das constantes. Se o programa não calcular um resultado novo e correto, ele não se qualifica.
Exemplo de saída:
*
*
*
*
*
*
*
*
*
* ***********
* ***** ****
* **** ***
* *** ***
* ** **
* *** **
* ** ** *********
* * ** **** ****
* ** * ** **
* * ** ** **
* * * ** ** ********
* ** * ** ** **** ****
* * ** ** ** ** **
* * ** ** ** ** ** **
** ** ** ** ** ** **
* **** **** ***
**********************************************************************************************************************************
Determinação do vencedor. Aceitarei a resposta que:
- Atende às regras, conforme definido acima.
- Característica de bônus será considerada.
- É a mais curta e elegante (decisão subjetiva).
code-challenge
Thomas O
fonte
fonte
code-golf
oucode-challenge
ou o quê? Etiquete adequadamente.Respostas:
Python 143 bytes
A curva resultante é um pouco diferente do exemplo, mas isso ocorre porque a velocidade é ajustada antes da bola entrar no chão, em vez de depois da bola já estar.
Python 132 bytes
Uma versão mais realista, que começa com uma velocidade x constante :
Produz:
fonte
Vou enviar minha própria solução em Python. Apenas um pouco simplificado; Tenho certeza de que existem maneiras muito melhores de fazê-lo!
282280 caracteres. O exemplo de saída no posto de perguntas foi gerado usando este programa.fonte