Congratulazioni! Sei stato appena assunto dalla NASA per lavorare al nuovo progetto Horizons 2.
Purtroppo, recentemente ci sono stati enormi tagli al budget, quindi il top management ha deciso di falsificare l'intero flyby Pluto pianificato (come hanno fatto per gli sbarchi sulla luna negli anni '70).
Il tuo compito è quello di scrivere un programma che accetterà come input una data nel formato yyyymmdd
e fornirà una falsa fotografia di Plutone per questa data. Puoi presumere che la data inserita sia nell'anno 2015 o 2016.
La fotografia è una griglia 15x15 di caratteri ASCII. I personaggi sulla griglia hanno le loro coordinate x e y all'interno dell'intervallo [-7, 7]
: il carattere in alto a sinistra è a (-7, -7)
mentre il carattere in basso a destra è a (7, 7)
.
La fotografia verrà calcolata con le seguenti regole:
- La sonda sarà la più vicina a Plutone il 25/12/2015
- La distanza
d
da Plutone è data da questa formula:square root of ((difference in days to christmas) ^ 2 + 10)
- Il raggio
r
dell'immagine di Plutone sulla foto è dato da:22 / d
- Un carattere con coordinate
(x, y)
sulla griglia deve essere impostato su#
ifx^2 + y^2 <= r^2
; deve essere impostato su spazio altrimenti. - Ci sono stelle in posizioni
(-3, -5)
,(6, 2)
,(-5, 6)
,(2, 1)
,(7, -2)
. Le stelle sono rappresentate da un punto.
e sono ovviamente nascoste da Plutone.
Ancora una cosa: il consiglio della NASA è giunto alla conclusione che la scoperta della vita su Plutone comporterebbe probabilmente un sostanziale aumento del budget. Il tuo programma dovrebbe quindi aggiungere indizi sulla vita su Plutone:
- Quando la distanza da Plutone è <= 4, aggiungi un plutoniano alle coordinate
(-3,-1)
:(^_^)
Esempio di fotografia per l'input 20151215
: (Il tuo codice dovrebbe avere tutte le nuove righe come fa questo codice)
.
# .
###
#####
###.
# .
.
Fotografia per input 20151225
:
#######
#########
###########
#############
#############.
###(^_^)#####
#############
#############
#############
#############
###########
#########
. #######
A titolo di confronto, ecco una foto del satellite Hydra di Plutone scattata da New Horizons. Le differenze sono appena percettibili con la nostra arte ASCII.
Questo è il codice golf, quindi vince il codice più breve in byte!
`
s in favore di <pre><code>
; sentiti libero di tornare indietro se non ti piace.
You can assume the entered date will be in the year 2015 or 2016.
Ma allora perché specificare un anno?