Notwen veut étudier la cinématique des corps lancés de grandes hauteurs dans un champ gravitationnel uniforme mais malheureusement il n'a pas la possibilité technique d'aller à des endroits suffisamment hauts et d'observer les objets en tombant. Mais qui ne veut pas voir les progrès de la science alors ... Aidons Notwen à construire un simulateur de gravité!
Contexte physique
Un objet tombé d'une hauteur ( sans vitesse initiale ) dans un champ gravitationnel uniforme, négligeant les effets atmosphériques tels que la traînée ou le vent gagne en vitesse et accélère vers le sol avec le temps. Cette "vitesse de changement" de vitesse dans une unité de temps est appelée accélération gravitationnelle . Près de la surface de la Terre, il est approximativement égal à , mais pour les besoins de ce défi, nous utiliserons la valeur , ce qui signifie qu'en une seconde, un objet augmente sa vitesse d'environ . Envisagez d'avoir une hauteur, qui est un multiple deet imaginez diviser cette hauteur en intervalles égaux, chacun demètres de long. Notwen veut mesurer le temps qu'il faut à l'objet pour passer à travers chacun de ces intervalles, c'est donc ce que nous visons également à calculer. Lacinématiquemoderne- sauter les détails techniques - nous dit que:
Le défi
Entrée: La hauteur partir de laquelle l'objet est projeté comme: un multiple entier positif de , ou le nombre d'intervalles (doncousignifierait que) - lequel dépend de vous.
Sortie: Une animation artistique ASCII d'un objet qui tombe, tombé d'une hauteur (détails ci-dessous).
La structure d'une trame de sortie doit être la suivante:
- sauts de ligne précédant le "sol", représentés par au moins un caractère non blanc (par exemple
@
). Au moins un des caractères du sol doit se trouver sur la verticale sur laquelle tombe l'objet. - Un autre caractère non blanc représentant l'objet (par exemple
X
), autre que celui que vous avez choisi pour le sol. - Facultativement , un caractère au début de chaque ligne représentant l'axe vertical ou le mur fait sur lignes. Toute quantité d'espaces de début et de fin est correcte tant qu'ils sont cohérents entre les cadres, ainsi que toute quantité d'espaces entre le mur et l'objet. Exemples de trames valides: 1 (pour ou ):
| X > | @ > A | > | or or or > | O > | > | > @@@ ^ ----- &&&
L'objet doit commencer sur la première ligne de la première image, puis après la sortie doit être vidée et votre programme doit afficher l'objet sur la même verticale mais sur la ligne suivante dans la deuxième image; puis après la sortie doit être à nouveau vidée et votre programme doit afficher l'objet sur la même verticale mais sur la ligne suivante dans le troisième cadre et ainsi de suite jusqu'à ce que l'objet atteigne la ligne juste au-dessus du sol. Exemple:
Règles
- La sortie doit être du texte écrit sur une console interactive (jetable), un GIF, un fichier séparé pour chaque image ou une autre technique de sortie raisonnable.
- Chaque image doit remplacer complètement la dernière image et être au même emplacement.
- Vous pouvez supposer que le temps nécessaire au compilateur / interprète pour produire le texte est négligeable et que la précision minimale autorisée pour le calcul des racines carrées est de 2 décimales.
- Vous pouvez prendre des entrées et fournir des sorties par n'importe quelle méthode standard , tout en prenant note que ces failles sont interdites par défaut. Il s'agit de code-golf , alors essayez de terminer la tâche dans le moins d'octets possible dans la langue de votre choix.
1: Je suis indulgent sur ce qui constitue un cadre valide parce que je veux autoriser ce qui convient le mieux à votre solution et je n'essaie pas d'ajouter des choses superflues au défi. Si quelque chose n'est pas clair, demandez dans les commentaires.
chr(27)
?'\33'
devrait encore être plus court.2*5**.5
est20**.5
.C # (.NET Core) ,
201, 180 + 13 = 193 octetsBesoin d'utiliser le système; pour 13 octets supplémentaires.
Étrangement, Console.Clear () ne semble pas fonctionner pour moi sur TIO. Cependant, cela fonctionne parfaitement dans une application console sous VS2017.
EDIT: Merci à Embodiment of Ignorance pour avoir raccourci la boucle, souligné mon assignation de variable inutile et inutile d'utiliser System.Threading; (restes de la copie VS), et soulignant que le terrain était nécessaire! Total de 8 octets golfés jusqu'à présent avec l'ajout du terrain. Ty Ty!
Essayez-le en ligne!
la source