(powiązane / inspirowane przez: Narysuj kręgielnię )
Zabawną rozrywką w miesiącach zimowych jest wykonywanie kręgli bałwana przy użyciu dużej piłki (jak koszykówka) i małych figurek bałwana. Odtwórzmy to w ASCII.
Każdy bałwan składa się z następujących elementów:
(.,.)
( : )
Oto wyrównanie dziesięciu „szpilek” bałwana
(.,.) (.,.) (.,.) (.,.)
( : ) ( : ) ( : ) ( : )
(.,.) (.,.) (.,.)
( : ) ( : ) ( : )
(.,.) (.,.)
( : ) ( : )
(.,.)
( : )
Te „piny” są oznaczone od 1
do 10
jako
7 8 9 10
4 5 6
2 3
1
Do tej pory tak standardowe. Jednak w przeciwieństwie do zwykłej kręgli szpilki bałwana są jedynie spłaszczone i nie są całkowicie usuwane. Robi to ktoś, kto musi ręcznie spłaszczyć śnieg trafionych szpilek. Spłaszczony bałwan jest reprezentowany przez _____
(pięć znaków podkreślenia), z białymi znakami powyżej. Oto przykład ze 1 3 5 6 9 10
spłaszczonymi kołkami (co oznacza, że 2 4 7 8
pozostały tylko kołki):
(.,.) (.,.)
( : ) ( : ) _____ _____
(.,.)
( : ) _____ _____
(.,.)
( : ) _____
_____
Wkład
- Lista liczb całkowitych od
1
do10
w dowolnym dogodnym formacie, które wskazują, które piny zostały uderzone i dlatego muszą zostać spłaszczone. - Każdy numer pojawi się tylko raz, a liczby mogą być w dowolnej kolejności (posortowane, nieposortowane, posortowane malejąco) - twój wybór, niezależnie od tego, czy Twój kod jest bardziej golfowy.
- Gwarantowane wejście ma co najmniej jedną liczbę całkowitą.
Wydajność
Otrzymana w ten sposób grafika ASCII przedstawiająca szpilki bałwana, z prawidłowymi szpilkami spłaszczonymi.
Zasady
- Wiodące lub końcowe znaki nowej linii lub białe znaki są opcjonalne, o ile same znaki są odpowiednio ustawione w linii.
- Dopuszczalny jest pełny program lub funkcja. Jeśli funkcja, możesz zwrócić dane wyjściowe zamiast je drukować.
- Jeśli to możliwe, dołącz link do internetowego środowiska testowego, aby ludzie mogli wypróbować Twój kod!
- Standardowe luki są zabronione.
- To jest golf golfowy, więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).
Przykłady
1 3 5 6 9 10
(.,.) (.,.)
( : ) ( : ) _____ _____
(.,.)
( : ) _____ _____
(.,.)
( : ) _____
_____
1 2 3
(.,.) (.,.) (.,.) (.,.)
( : ) ( : ) ( : ) ( : )
(.,.) (.,.) (.,.)
( : ) ( : ) ( : )
_____ _____
_____
1 2 3 4 5 6 8 9 10
(.,.)
( : ) _____ _____ _____
_____ _____ _____
_____ _____
_____
źródło
Odpowiedzi:
05AB1E ,
4544 bajtówWypróbuj online!
Wyjaśnienie
źródło
Snowman 1.0.2 , 157 bajtów
Wypróbuj online!
Kiedy zobaczyłem to wyzwanie, wiedziałem, że po prostu muszę odpowiedzieć w idealnym języku ...
Jest to podprogram, który pobiera dane wejściowe jako tablicę liczb, a dane wyjściowe jako ciąg znaków za pośrednictwem bieżącego permawaru.
Opakowanie zapewniające „czytelność” / estetykę:
Wersja nieco nieoznaczona / skomentowana:
źródło
ułożone w stos , niekonkurujące, 118 bajtów
Dodałem
deepmap
i kilka innych rzeczy po tym wyzwaniu, wraz z mnóstwem poprawek błędów. Wypróbuj tutaj!Nie golfił
Wydajność:
źródło
Python 2,
248243241226224223221210206200177 bajtów-5 dzięki dzięki @Rod
-15 ponownie dzięki Rod
-1 ponownie używając obliczenia miejsca z Rod
Wygląda dłużej z powodu większej liczby linii i wcięć, ale zaskakująco 11 bajtów krótszych.
Jestem pewien, że spadnie to poniżej 200 ...
Miałem rację, ale nie bez poważnych wskazówek wartych 23 bajtów z @ Pietu1998. Wielkie dzięki!
Wypróbuj online!
Pobiera dane wejściowe jako listę liczb całkowitych. Za duży na 248, ale działa.
źródło
C #
233221213203 bajtówMetoda przyjmuje tablicę int jako listę upadłych pinów
owinięty
rozszerzony
usunięto kilka bajtów sugestiami w komentarzach Ghost, Raznagul i Auhmaan.
źródło
new[]{7,4,2,1}.Contains(i--)
nai<9&&i%3==1||i==2
i==7||i<5&&i!=3
i==7|i<5&i--!=3
var o="";var x=...
jestring o="",x=""...
.Partia, 262 bajtów
Uwaga: Linie 2, 3 i 4 kończą się spacją, a także generują końcowe spacje w każdej linii. Można je usunąć kosztem 5 bajtów. Działa poprzez tworzenie zmiennych s1 ... s10 jako dolnych połówek bałwanów, a następnie spłaszczanie tych podanych jako argumenty wiersza poleceń. Odpowiednie rzędy są drukowane dwukrotnie, za pierwszym razem z dolnymi połówkami zamienionymi na górne połówki. Pozwala to zaoszczędzić 18 bajtów dzięki wykorzystaniu dwóch zestawów zmiennych górnej i dolnej połowy.
źródło
JavaScript,
154149 bajtówźródło
Pyth, 63 bajty
Program, który pobiera dane z listy liczb całkowitych i wypisuje wynik.
Zestaw testowy
[Wyjaśnienie nastąpi później]
źródło
Pyth, 51 bajtów
Kod zawiera niektóre niedrukowalne, więc oto
xxd
zrzut heksowy.Wypróbuj online.
Bez niedrukowalnych 52 bajtów
Wypróbuj online.
źródło
JavaScript
178169 bajtówZasadniczo port z mojej odpowiedzi w języku C #.
Pobiera tablicę int jako listę spłaszczonych „szpilek”;
Owinięty:
Rozszerzony i wyjaśniony:
źródło