Parabéns! Você acabou de ser contratado pela NASA para trabalhar no novo projeto Horizons 2.
Infelizmente, houve enormes cortes no orçamento recentemente, então a alta gerência decidiu fingir todo o sobrevoo planejado de Plutão (como fizeram nos pousos na lua nos anos 70).
Sua tarefa é escrever um programa que aceite como entrada uma data no formato yyyymmdd
e forneça uma fotografia falsa de Plutão para essa data. Você pode supor que a data inserida será no ano de 2015 ou 2016.
A fotografia é uma grade 15x15 de caracteres ASCII. Os caracteres na grade têm suas coordenadas xe y dentro do intervalo [-7, 7]
- o caractere superior esquerdo está em (-7, -7)
enquanto o caractere inferior direito está em (7, 7)
.
A fotografia será calculada com as seguintes regras:
- A sonda será a mais próxima de Plutão em 25/12/2015
- A distância
d
para Plutão é dada por esta fórmula:square root of ((difference in days to christmas) ^ 2 + 10)
- O raio
r
da imagem de Plutão na foto é dado por:22 / d
- Um caractere com coordenadas
(x, y)
na grade deve ser definido como#
sex^2 + y^2 <= r^2
; caso contrário, ele deve ser definido como espaço. - Há estrelas em posições
(-3, -5)
,(6, 2)
,(-5, 6)
,(2, 1)
,(7, -2)
. As estrelas são representadas por um ponto.
e, é claro, são escondidas por Plutão.
Mais uma coisa: o conselho da NASA chegou à conclusão de que a descoberta da vida em Plutão provavelmente resultaria em um aumento substancial do orçamento. Seu programa deve adicionar pistas da vida em Plutão:
- Quando a distância até Plutão for <= 4, adicione um plutoniano nas coordenadas
(-3,-1)
:(^_^)
Exemplo de fotografia para entrada 20151215
: (Seu código deve ter todas as novas linhas como este código)
.
# .
###
#####
###.
# .
.
Fotografia para entrada 20151225
:
#######
#########
###########
#############
#############.
###(^_^)#####
#############
#############
#############
#############
###########
#########
. #######
Como comparação, aqui está uma foto do satélite Hydra de Plutão, tirada pela New Horizons. As diferenças são quase imperceptíveis em nossa arte ASCII.
Isso é código de golfe, então o código mais curto em bytes vence!
`
s a favor de <pre><code>
; sinta-se à vontade para reverter se não gostar.
You can assume the entered date will be in the year 2015 or 2016.
Mas então por que especificar um ano?