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ą nza 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 xs 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 nwię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 ow 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 njest 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 sideszasadę? Zakładając, że środek jest 0,0wtedy 1,1, 1,-1, -1,-1, -1,1mają 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ł).