Napisz program jednowierszowy o długości dwóch lub więcej znaków, który nie zawiera terminatorów linii i nie wymaga wprowadzania danych. Na przykład twoim programem może być:
MyProgram
Kiedy twój program jest ułożony w kształty, które wskazówki zegara wykonują o godzinie 12, 3, 6 i 9, musi podać odpowiednią liczbę godzin. Inne czasy nie muszą być obsługiwane.
Konkretnie:
Gdy program jest ułożony jak wskazówki zegara o godzinie 12 (🕛)
m a r g o r P y M
uruchomienie powinno dać wynik
12
.Gdy twój program jest ułożony jak wskazówki zegara o godzinie 3 (🕒)
m a r g o r P y MyProgram
uruchomienie powinno dać wynik
3
.Gdy program jest ułożony jak wskazówki zegara o godzinie 6 (🕕)
m a r g o r P y M y P r o g r a m
uruchomienie powinno dać wynik
6
.Gdy program jest ułożony jak wskazówki zegara o godzinie 9 (🕘)
........m ........a ........r ........g ........o ........r ........P ........y margorPyM
uruchomienie powinno dać wynik
9
.
Notatki
Pierwsza postać w twoim programie jest zawsze umieszczana na środku zegara. (Zwróć uwagę, że jest tylko jeden
M
przykład z godziny 6).Dowolny znak nie będący znakiem nowej linii może być użyty do wcięcia programu dla ustawienia godziny 9. W przykładach
.
użyto spacji, ale spacja/
lub#
będzie równie poprawna.W przypadku ustawienia na godzinę trzecią żadne znaki nie powinny znajdować się w pustym prawym górnym obszarze. (tzn. pozostaw puste, nie wypełniaj spacjami).
Wstępne ustawienie programu (
MyProgram
jak jest) nie musi nic robić. Tylko ustawienia godziny 12, 3, 6 i 9 muszą mieć prawidłowe, dobrze zdefiniowane wyjście.Kod, który działa tylko jako funkcja lub polecenie REPL, jest niedozwolony. Każde z czterech rozwiązań powinno być gotowe do uruchomienia tak pełnych programów, jak jest.
Najkrótszy program w bajtach wygrywa. np. MyProgram
ma długość 9 bajtów.
źródło
3
i6
byłyby nierozróżnialne dla Brainfuck, ponieważ różnią się tylko białymi odstępami.Odpowiedzi:
GolfScript,
1110 bajtówWykorzystuje się
#
jako znak dopełniający.godzina 12
Wypróbuj online!
Jak to działa.
6
jest wypychany na stos,;
odrzuca go.]
zawija stos w tablicę (nie wpływa na dane wyjściowe).9
i3
są wypychane na stos;
i;
odrzucają je.Wreszcie,
1
i2
są wypychane na stosie, a pośrednio drukowane bez separacji.Godzina trzecia
Wypróbuj online!
Jak to działa
6
jest wypychany na stos,;
odrzuca go.]
zawija stos w tablicę (nie wpływa na dane wyjściowe).9
i3
są wypychane na stos;
i;
odrzucają je.1
i21
są wypychane na stos,;;
odrzuca je.3
jest wypychany na stos.#
rozpoczyna komentarz do końca linii.Godzina szósta
Wypróbuj online!
Jak to działa
6
jest wypychany na stos,;
odrzuca go.]
zawija stos w tablicę (nie wpływa na dane wyjściowe).9
i3
są wypychane na stos;
i;
odrzucają je.1
,2
I1
są wypychane na stosie.;
i;
odrzuć ostatni1
i2
.3
i9
są wypychane na stos.]
i;
zawiń stos do tablicy i odrzuć go, czyszcząc stos.6
jest wypychany na stos.godzina 9
Wypróbuj online!
Jak to działa
Wszystkie wiersze oprócz ostatniego są komentarzami.
6
jest wypychany na stos,;
odrzuca go.]
zawija stos w tablicę (nie wpływa na dane wyjściowe).9
jest wypychany na stos.#
rozpoczyna komentarz do końca linii.źródło
> <> , 20 bajtów
Są tam niedrukowalne, a mianowicie:
X
jest\x06\t
c
jest\x03
Ta sama część kodu źródłowego jest uruchamiana za każdym razem, używając
g
dwóch części kodu źródłowego, aby określić, co należy odjąć od 12.12 | Godzina trzecia | Godzina szósta | Godzina dziewiąta (wygląda niepoprawnie z powodu zakładki)
źródło
ROOP , 54 bajty
Wykorzystuje się
<
jako znak dopełniający.12 | Godzina trzecia | Godzina szósta | godzina 9
godzina 12
Te
1
i te,2
które są w pobliżu górnego spadku przez 3 cykle. Po dotarciu doW
operatora operator umieszcza liczbęO
, która reprezentuje wynik.W
1
tej częścispadł na 2 cykle,
V
operator przesuwa go poniżej, aw następnym cyklu aktywujeH
operatora, który kończy program.Godzina trzecia
O
są również przedmiotami, które poruszają się i spadają. Ponieważ kod ma teraz linię z więcej niż jednym znakiem, wszystkie pozostałe linie są wypełnione pustymi spacjami. WszystkieO
ruchy w prawo i upadek, przez coW
operatorzy nie mają miejsca na wysłanie1
i2
.Jedyne
O
, co się nie porusza, to uwięzione w środku.3
Góry spada do 4 cykli w THEW
.Następnie liczby, które spadają, wypełniają 4 spacje między
W
i3
. Po wypełnieniu kolejna liczba może przejść przez wszystkie z nich i dotrzeć doH
operatora kończącego program.Godzina szósta
Bardzo podobny do 12,
6
spada doW
i1
doH
. Dzieje się tak w 2 cyklach, kończąc program przed wystąpieniem 12 przypadku.godzina 9
(Pokazuję jedną kolumnę,
<
ponieważ inni nic nie robią).Gdy
V
podnosi9
się i przemieszcza go do poniżej rury, która odchyla się obiektu w lewo. Rura<
przesuwa obiekt w dół, a następny w prawo.V
Operator umieścić9
w przestrzeni poniżej, a następnie jest wysyłany do wyjścia.1
Sprawia jednakowe ruchy i osiągnieH
, który kończy program. Gdy rury poruszają obiektami w tym samym cyklu, wszystko to zajmuje jeden cykl.źródło