Imprima, en STDOUT, un patrón que muestre en qué dirección tomará una pelota que rebota.
Se hacen los siguientes supuestos:
- La pelota comienza en la esquina superior izquierda:
0, 0
con velocidad inicial cero. - La gravedad es
9.8ms^-2
exactamente hacia el piso (y positivo). - La pelota pesa
500g
exactamente. - La pelota rebota a 45 o 135 grados en el piso a menos que desee agregar los cálculos apropiados para agregar trayectorias variables. (Bonus puntos arbitrarios!)
- La pelota tiene un coeficiente
constante de resortede restitución / constante de rebote de0.8
exactamente. - La pelota es perfectamente esférica y no se deforma cuando rebota.
- La sala tiene 25 caracteres de alto, 130 caracteres de ancho. Cada x e y es de 1 metro y cada posición de la pelota representa una muestra discreta: el período de tiempo exacto no se especifica deliberadamente, pero la pantalla debe hacer que la trayectoria de la pelota sea lo suficientemente clara. La salida debe mostrar el camino de la pelota, no solo la posición final.
- El piso y la pelota deben indicarse con caracteres en STDOUT, que pueden ser iguales. La presencia de ninguna bola o superficie del piso se indicará con un carácter de espacio.
- Se le permite asumir el redondeo a tres decimales en cualquier cálculo. (Las soluciones que usan números enteros pueden estar particularmente interesadas en esta regla).
- La simulación se detiene cuando la pelota no se mueve del piso o sale de la habitación (
x > width of area
.) - El programa debe simular el camino de la pelota, no simplemente cargarlo desde un archivo o codificarlo de alguna manera en el programa. La prueba para esto será cambiar opcionalmente una de las constantes. Si el programa no calcula un resultado nuevo y correcto, entonces no califica.
Salida de ejemplo:
*
*
*
*
*
*
*
*
*
* ***********
* ***** ****
* **** ***
* *** ***
* ** **
* *** **
* ** ** *********
* * ** **** ****
* ** * ** **
* * ** ** **
* * * ** ** ********
* ** * ** ** **** ****
* * ** ** ** ** **
* * ** ** ** ** ** **
** ** ** ** ** ** **
* **** **** ***
**********************************************************************************************************************************
Determinación del ganador. Aceptaré la respuesta que:
- Cumple con las reglas como se definió anteriormente.
- Se considerará la característica adicional.
- Es la más corta y elegante (decisión subjetiva).
code-challenge
Thomas O
fuente
fuente
code-golf
ocode-challenge
o qué? Por favor etiquete apropiadamente.Respuestas:
Python 143 bytes
La curva resultante es ligeramente diferente al ejemplo, pero esto se debe a que la velocidad se ajusta antes de que la pelota caiga al suelo, en lugar de después de que ya lo haya hecho.
Python 132 bytes
Una versión más realista, que comienza con una velocidad x constante:
Produce:
fuente
Presentaré mi propia solución en Python. Solo un poco simplificado; ¡Estoy seguro de que hay formas mucho mejores de hacerlo!
282280 caracteres. El resultado de ejemplo en la publicación de preguntas se generó utilizando este programa.fuente