Uwielbiam sardynki, nie mam ich dość, podobnie jak mój komputer Omnilang 5000, który jest obojętny językowo.
Aby dać komputerowi radość z doświadczania sardynek, postanowiłem nakarmić go wieloma programami, które są w stanie wyświetlać na ekranie puszki sardynek w różnych orientacjach i wyświetlać do dziesięciu sardynek.
W tym wyzwaniu będziesz odpowiedzialny za tworzenie programów w oparciu o następujące parametry:
Dane wejściowe
Liczba (od 0 do 10) i litera z jednego z następujących „LR” (odpowiednio lewy lub prawy) Na przykład: 3L
lub 5R
; jak to jest wprowadzane do programu, zależy od ciebie.
Wydajność
Otwarta puszka sardynek z sardynkami skierowanymi we wskazanym kierunku, z kluczem (reprezentowanym przez %
znak „ ”) i obraną pokrywką (zwinięta puszka na końcu reprezentowanym przez @
znak „ ”) umieszczoną na górze puszki.
- Wszystkie sardynki muszą być skierowane w kierunku wskazanym przez dane wejściowe.
- Wszystkie sardynki będą miały ciała o długości pięciu znaków między skrzelem („
)
” lub „(
”) a ogonem „><
” - Klucz i obrana rolka wieczka zawsze będą skierowane w przeciwnym kierunku niż sardynki.
- Puszka musi mieć wygląd trójwymiarowy, jak pokazano poniżej w przykładach.
- Minimalna wysokość puszki wynosi 3 sardynki. Jeśli więc liczba jest mniejsza niż 3, należy pokazać puszkę o wysokości 3 sardynek z wprowadzoną liczbą sardynek. W przeciwnym razie puszka musi być liczbą sardynek wysoką wskazaną na wejściu. Więc wkład
0R
lub0L
pokaże pustą puszkę sardynek. - Wszelkie inne dane wejściowe, których nie można zweryfikować, niczego nie pokażą.
Na przykład dla „ 3L
”
__________
(__________@%
|<*)_____><||
|<*)_____><||
|<*)_____><||
'==========''
Dla „ 7R
”
__________
%@__________)
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
''=========='
Dla „ 2L
”
__________
(__________@%
|<*)_____><||
|<*)_____><||
| ||
'==========''
Dla „ 0R
”
__________
%@__________)
|| |
|| |
|| |
''=========='
„ 0L
”
__________
(__________@%
| ||
| ||
| ||
'==========''
Nieprawidłowe wprowadzenie niczego nie zwróci ...
- To jest golf golfowy, więc najmniejsza liczba postaci wygra to wyzwanie.
- Bez luk jak zwykle.
-v
flagi), a kierunek („L” lub „R”) pod „podaj wejście do programu „następnie kliknij„ daj ”. (Zredagowałem odpowiedź, aby, mam nadzieję, wyjaśnić.)Emojicode ,
456448 bajtówPrzyjmuje 2 argumenty: pierwszy to linie, drugi to kierunek (0 lub 1).
Wypróbuj online!
Wersja „nieczytelna” i wersja pseudokodu „czytelna”:
źródło
Python 2 , 155 bajtów
Wypróbuj online!
Dane wejściowe składają się z krotki o długości 2. Pierwszy element wskazuje liczbę sardynek. Drugi element wskazuje kierunek;
0
na lewo,1
na prawo.-84 bajty wykorzystujące magię lambda dzięki notjagan i officialaimm
źródło
0 to 10
. PS` -10` wydrukuje pustą puszkę, ponieważ oznacza to, że były10
sardynki, ale już je zjadłeś . : DWędkarstwo , 1311 bajtów
Pobiera dane wejściowe z
stdin
formularza:Wędkarstwo nie jest dostępne w Try It Online , ale na stronie z linkami esolangs znajduje się interpreter.
Jest to pierwszy program, który stworzyłem w wędkowaniu - w rzeczywistości jest to pierwszy program, który stworzyłem w dowolnym języku 2D - więc prawdopodobnie może być znacznie krótszy. Wskazówki dotyczące gry w golfa są mile widziane (choć nie zdziwiłbym się, gdyby nikt ich nie dał, biorąc pod uwagę, że nawet ja nie wiem, co do cholery właśnie napisałem).
Oto GIF ścieżki, którą program przyjmuje do wprowadzenia
1R
(przepraszam za niską jakość):(Zostało to stworzone za pomocą interpretera, który stworzyłem; o ile mi wiadomo, nie ma publicznie dostępnych programów, które „wizualizują” połowy)
źródło
Węgiel drzewny , 49 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Pierwszy argument to liczba sardynek, drugi to kierunek (0 = lewy, 1 = prawy).
źródło
SOGL V0.12 ,
5148 bajtówWypróbuj tutaj!
Oczekuje, że dane wejściowe będą liczone jako pierwsze, a drugie - w lewo lub w prawo, reprezentowane przez 1 lub 0.
Wyjaśnienie:
źródło
R,
334 bajty311 bajtówFunkcja przyjmuje wartość liczbową dla n oraz ciąg znaków dla kierunku.
To mój pierwszy post, więc przyznaję, że nie jestem pewien, jak liczyć bajty kodu.
źródło
C ++,
307296292 bajtówStosowanie :
-11 bajtów zapisanych dzięki użytkownikowi ThePirateBay -4 bajtów dzięki Zacharýmu
źródło
#define
dyrektywy? Nie testowałem tego, ale wydaje się, że nie ma takiej potrzeby.c!=82
byćc-82
w każdym przypadku, w którym go używasz?Python 2 , 287 bajtów
Wypróbuj online!
Wejście jest oddzielone przecinkami krotką liczby formacie:
2, 1
. Pierwsza liczba to ilość ryb, a druga to 0 dla lewej i 1 dla prawej.Zaczynało się to jako próba pokonania drugiej odpowiedzi (całkowicie myślałem, że mogę), ale jest do bani. : P Jeśli ktokolwiek może zrobić z niego głowę i ogon i pomóc w grze w golfa (obwiniam go teraz o godzinie 12), byłbym zadowolony.
źródło
C # (.NET Core), 289 bajtów
Wypróbuj online!
Bierze liczbę całkowitą i znak (L, R) jako parametry i wyświetla wynikowy ciąg.
Ugh. Miałem do czynienia z irytującymi stałymi ciągów, niestety nie można tego zrobić
string * length
w języku C #. A metoda znew string(char, length)
nie byłaby warta kosztu bajtu.Algorytm działa w następujący sposób:
h > i
wstawiamy do niego sardynkę. Jeślii >= h
będzie pusta przestrzeń, w której normalnie będzie sardynka.źródło
Perl 5 , 167 + 1 (-n) = 168 bajtów
Wypróbuj online!
źródło
JavaScript (ES6),
283273269251 bajtówZaoszczędź 10 bajtów dzięki @WallyWest
Zaoszczędzono 4 bajty, usuwając dodatkowe pareny
Zaoszczędź 18 bajtów dzięki @ThePirateBay
Cierpi na brak odwrócenia łańcucha w bibliotece standardowej. Definiuje funkcję, która pobiera dane wejściowe
n
dla liczby ryb id
kierunku. Zgłasza, jeślid
nie jest „L” lub „R”.Wypróbuj online
źródło
if...else if
zagnieżdżone trójskładniki z przypisaniem niszczenia. Nie mam jednak pomysłów ..._
funkcji dwa razy, raz dla 10 znaków podkreślenia (które są używane dwa razy), raz dla 10 znaków równości, więc posiadanie jej w funkcji oszczędza mi bajt. I chyba, że źle używam ciągów szablonów, użycie ich zamiast konkatenacji to 3 bajty więcej .