Gratulacje! Właśnie zostałeś zatrudniony przez NASA do pracy nad nowym projektem Horizons 2.
Niestety ostatnio miały miejsce ogromne cięcia budżetowe, więc najwyższe kierownictwo postanowiło sfałszować cały planowany przelot Plutona (podobnie jak w przypadku lądowań na Księżycu w latach 70.).
Twoim zadaniem jest napisanie programu, który zaakceptuje jako datę datę w formacie yyyymmddi dostarczy fałszywe zdjęcie Plutona na tę datę. Możesz założyć, że wprowadzona data będzie w roku 2015 lub 2016.
Zdjęcie to siatka 15 x 15 znaków ASCII. Znaki na siatce mają współrzędne x i y w zakresie [-7, 7]- lewy górny znak znajduje się na, (-7, -7)a prawy dolny znak na (7, 7).
Zdjęcie zostanie obliczone według następujących zasad:
- Sonda będzie najbliżej Plutona 25.12.2015
- Odległość
ddo Plutona jest określona przez ten wzór:square root of ((difference in days to christmas) ^ 2 + 10) - Promień
robrazu Plutona na zdjęciu jest określony przez:22 / d - Znak ze współrzędnymi
(x, y)na siatce należy ustawić na#ifx^2 + y^2 <= r^2; w przeciwnym razie należy ustawić spację. - Są gwiazdy w pozycji
(-3, -5),(6, 2),(-5, 6),(2, 1),(7, -2). Gwiazdy są reprezentowane przez kropkę.i oczywiście są ukryte przez Plutona.
Jeszcze jedno: Rada NASA doszła do wniosku, że odkrycie życia na Plutonie prawdopodobnie spowoduje znaczny wzrost budżetu. Twój program powinien następnie dodać wskazówki życia na Plutonie:
- Gdy odległość do Plutona wynosi <= 4, dodaj pluton o współrzędnych
(-3,-1):(^_^)
Przykładowe zdjęcie do wprowadzenia 20151215: (Twój kod powinien zawierać wszystkie znaki nowej linii, tak jak ten kod)
.
# .
###
#####
###.
# .
.
Zdjęcie do wprowadzenia 20151225:
#######
#########
###########
#############
#############.
###(^_^)#####
#############
#############
#############
#############
###########
#########
. #######
Dla porównania, oto zdjęcie satelity Pluto Hydra zrobione przez New Horizons. Różnice są prawie niezauważalne w naszej sztuce ASCII.
To jest kod golfowy, więc wygrywa najkrótszy kod w bajtach!
`s na rzecz <pre><code>; możesz się wycofać, jeśli ci się nie podoba.
You can assume the entered date will be in the year 2015 or 2016.Ale dlaczego w ogóle określać rok?
