Wyzwanie
Zima zbliża się wielkimi krokami, a wiele miejsc otrzymuje pierwsze warstwy śniegu na sezon 15/16, więc dlaczego nie wyłamiemy maszyn śniegowych i sami nie zakodujemy?
Biorąc pod uwagę liczbę całkowitą n
za pośrednictwem STDIN, wyprowadzaj płatek śniegu reprezentacji ASCII Beta (jak opisano poniżej) na poziomie n
.
Płatek śniegu Beta
Płatek śniegu zaczyna się na poziomie 0 z jednym x:
x
Następnie w każdym rogu dodajesz jeden z tych kształtów:
x
xx
Powyższy kształt dodajesz do prawego górnego rogu. Aby uzyskać prawy dolny róg, obróć go o 90 ° zgodnie z ruchem wskazówek zegara, dla lewego dolnego rogu, 180 ° zgodnie z ruchem wskazówek zegara i dla lewego górnego rogu, 270 ° zgodnie z ruchem wskazówek zegara.
Jeśli to zrobisz, uzyskasz następujący kształt:
x x
xx xx
x
xx xx
x x
Zwróć uwagę na orientację kształtów. Kontynuując, dodajemy więcej kształtów do każdego rogu, korzystając z opisanych powyżej zasad orientacji, aby uzyskać poziom 2:
x x x
xxxxxxx
xx x x xx
xxx xxx
xx x xx
xxx xxx
xx x x xx
xxxxxxx
x x x
Zauważ, że kształty są dodawane do x
s tylko z dwiema lub więcej odsłoniętymi bokami (co jest określane jako róg powyżej).
Kształty L mogą i będą się nakładać na wartości n
większe niż 1. Na przykład:
Jeśli poziom 0 to:
x x
Następnie muszą istnieć nakładki na poziomie 1 (oznaczone jako o
, nie uwzględniaj o
w danych wyjściowych):
x o x
xxxoxxx
x x
xxxoxxx
x o x
Twoim zadaniem jest wygenerowanie reprezentacji ASCII płatka śniegu Beta.
Premia
Będzie premia 50 powtórzeń za najkrótszy program, który, gdy n
jest ujemny, wyświetla płatek śniegu (na poziomie n*-1
) jako obraz lub graficznie na ekranie.
Możesz mieć osobne programy dla nagrody i głównego zadania.
Zwycięski
Najkrótszy program w bajtach wygrywa.
2 or more exposed sides
zasadę? Zakładając, że środek jest 0,0
wtedy 1,1
, 1,-1
, -1,-1
, -1,1
mają 2 odsłonięte strony (boki zwrócone w kierunku pozostałych 4 punkty). Czy nie powinny to być 3+ otwarte strony, aby uniknąć wypełnienia? Lub naprzemiennie rozwija się tylko wtedy, gdy ma 0 lub 1 sąsiadów (kardynał).