Pamiętasz te zabawne wiatraczki, które dmuchasz i kręcą się w kółko? Kodujmy jeden!
Wiatraczek będzie miał zestaw znaków \ | / _
rysujących jego środek i ramiona. Jeden z możliwych wiatraczek może wyglądać następująco:
|
|
|_ ___
___|_|
|
|
|
Ale czym jest wiatraczek, który się nie kręci? Nie ma zabawy! Możemy go obrócić, zmieniając symbole:
/
\ /
\ /
\/\
\/\
/ \
/ \
/
Wyzwanie polega na stworzeniu programu, który pobiera trzy liczby całkowite i generuje wiatraczek, jak określono poniżej. Pierwsze z nich to liczba ramion, jakie ma, drugie to długość ramion wiatraczka, a trzecie to liczba obrotów, w których obróci się o jedną ósmą obrotu w prawo.
Możesz założyć, co następuje:
- Liczba ramion zawsze będzie wynosić 0, 1, 2, 4 lub 8.
- Wszystkie ramiona będą w równych odstępach od siebie.
Początkowa pozycja koła zębatego będzie miała swój środek w następujący sposób:
_ |_|
Jeśli liczba ramion wynosi 1, możesz zdecydować, w którym kierunku wskazane jest ramię.
- Jeśli liczba ramion wynosi 2, możesz zdecydować, aby ramiona były skierowane pionowo lub poziomo.
Możesz napisać pełny program, który pobiera dane wejściowe za pomocą argumentu STDIN lub wiersza polecenia, lub funkcję, która pobiera dane wejściowe za pomocą argumentów funkcji. Twój program musi pokazywać sekwencję wyjść, która pokazuje obracanie się wiatraczka, każde oddzielone co najmniej jedną pustą linią. Środek wiatraczka nie powinien poruszać się o więcej niż jedno pole. Możesz wydrukować tyle spacji początkowych i końcowych, ile potrzeba.
Oto kilka przykładów:
0 2 1
_
|_|
/\
\/
1 3 2
|
|
|_
|_|
/
/
/
/\
\/
_ ___
|_|
2 2 0
_ __
__|_|
8 4 1
\ | /
\ | /
\ | /
\|_/____
____|_|
/ |\
/ | \
/ | \
/ | \
| /
\ | /
\ | /
\ |/
____\/\____
\/\
/| \
/ | \
/ | \
/ |
To jest kod golfowy, więc wygrywa najkrótszy kod. Powodzenia!
1 3 5
i ramię początkowo skierowane w górę), należy wcześniej wstawić spacje, aby to uwzględnić.Odpowiedzi:
Python
2535517 473468 bajtówZaoszczędź 5 bajtów dzięki @Easterly Ink!
Dane wejściowe powinny być oddzielone przecinkami (tj. NumArms, armLength, numRots)
Wersja golfowa
Wersja bez golfa
Wyjaśnienie
Całkiem proste, gdy się zepsuje. Najpierw dowiedz się, ile potrzeba siatki, a następnie narysuj kwadrat podstawowy lub diament.
Początkowa lokalizacja każdego ramienia, symbol i kierunek są zakodowane na stałe dla każdego z 8 możliwych ramion dla podstawy kwadratowej i diamentowej. Następnie ich narysowanie jest dość łatwe.
Aby wszystko obrócić, po prostu przełączam między kwadratową i diamentową podstawą, a następnie zwiększam każde z ramion, obracając je raz w prawo.
źródło
' ' for
do' 'for'
,] for
do]for'
, do 8 do8for'
,print ''
doprint''
.