Notwen chce badać kinematykę ciał wyrzucanych z dużych wysokości w jednolite pole grawitacyjne, ale niestety nie ma technicznej możliwości wejścia na wystarczająco wysokie miejsca i obserwowania obiektów podczas upadku. Ale kto nie chce widzieć postępu w nauce, więc ... Pomóżmy Notwen zbudować symulator grawitacji!
Tło fizyczne
Obiekt spadł z wysokości ( bez prędkości początkowej ) w jednolitym polu grawitacyjnym, pomijając efekty atmosferyczne, takie jak przeciąg lub wiatr, zwiększa prędkość i przyspiesza z czasem w kierunku ziemi. To „tempo zmian” prędkości w jednostce czasu nazywa się przyspieszeniem grawitacyjnym . W pobliżu powierzchni Ziemi jest w przybliżeniu równa, ale do celów tego wyzwania wykorzystamy tę wartość , co oznacza, że w ciągu jednej sekundy obiekt zwiększa swoją prędkość o około . Zastanów się nad wysokością, która jest wielokrotnością i wyobraź sobie, że dzielisz tę wysokość na równe przedziały metrów długości. Notwen chce zmierzyć, ile czasu zajmuje upuszczenie obiektu przez każdy z tych przedziałów, więc to też zamierzamy obliczyć. Współczesna kinematyka - pomijanie szczegółów technicznych - mówi nam, że:
Wyzwanie
Dane wejściowe: wysokość z którego obiekt jest wyrzucany jako: dodatnia liczba całkowita wielokrotność , lub liczba interwałów (więc albo lub oznaczałoby to ) - który zależy od Ciebie.
Wyjście: animacja artystyczna ASCII spadającego obiektu spadającego z wysokości (szczegóły poniżej).
Struktura ramki wyjściowej musi być następująca:
- znaki nowej linii poprzedzające „tło”, reprezentowane przez co najmniej jeden znak spacji (np
@
.). Co najmniej jedna z postaci ziemi musi leżeć na pionie, na który spadnie przedmiot. - Inny znak niebędący spacją reprezentujący obiekt (np.
X
), Inny niż ten, który wybrałeś dla podłoża. - Opcjonalnie znak na początku każdej linii reprezentujący oś pionową lub wykonaną ścianęlinie. Każda ilość wiodących i końcowych spacji jest w porządku, o ile są one spójne między ramkami, a także dowolna ilość odstępów między ścianą a obiektem. Przykłady prawidłowych ramek obejmują 1 (dla lub ):
| X > | @ > A | > | or or or > | O > | > | > @@@ ^ ----- &&&
Obiekt musi zaczynać się w pierwszej linii pierwszej klatki, a następnie po dane wyjściowe powinny zostać opróżnione, a program powinien wyświetlać obiekt w tym samym pionie, ale w następnym wierszu w drugiej ramce; następnie powynik powinien zostać ponownie wyczyszczony, a program powinien wyświetlać obiekt na tej samej pionie, ale w następnym wierszu w trzeciej ramce i tak dalej, aż obiekt osiągnie linię tuż nad ziemią. Przykład:
Zasady
- Wyjściem powinien być tekst napisany na interaktywnej (spłukiwalnej) konsoli, GIF, osobny plik dla każdej klatki lub inna rozsądna technika wydruku.
- Każda ramka powinna całkowicie zastąpić ostatnią ramkę i znajdować się w tym samym miejscu.
- Można założyć, że czas wymagany przez kompilator / tłumacz na wydrukowanie tekstu jest nieistotny, a minimalna dozwolona precyzja obliczania pierwiastków kwadratowych wynosi 2 miejsca po przecinku.
- Możesz przyjmować dane wejściowe i dostarczać dane wyjściowe dowolną standardową metodą , zwracając uwagę, że te luki są domyślnie zabronione. To jestgolf-golf, więc spróbuj wykonać zadanie w najmniej bajtach, którymi możesz zarządzać w wybranym języku .
1: Nie jestem pewien, co stanowi prawidłową ramkę, ponieważ chcę pozwolić na to, co najbardziej odpowiada twojemu rozwiązaniu i nie próbuję dodawać zbędnych elementów do wyzwania. Jeśli coś jest niejasne, zapytaj w komentarzach.
chr(27)
?