Jest rok 87.539.319 i samotne spacery kosmiczne są teraz powszechne, wiele osób podróżuje w kosmos sami, napędzani jedynie plecakiem odrzutowym na plecach, programując swój kurs za pomocą komputera osobistego i klawiatury.
Jesteś jedną z takich osób; byłeś na pięknym, spokojnym spacerze kosmicznym, kiedy nagle ogarnęła Cię grawitacja czarnej dziury!
Kiedy lecisz w kierunku tej czarnej dziury i kręcisz się coraz szybciej do wewnątrz, zdajesz sobie sprawę, że jedyną szansą na przetrwanie jest nadanie komunikatu o niebezpieczeństwie i masz nadzieję, że pobliski statek przybędzie na Ciebie.
Więc wyłamujesz klawiaturę i zaczynasz pisać program.
Twój program może być w dowolnym języku i musi być drukowany HELP!
na standardowym wyjściu (komputer przesyła wszystkie standardowe sygnały w głąb przestrzeni).
Jednak gdy jesteś w pobliżu czarnej dziury, twoja klawiatura jest powoli rozrywana na strzępy!
Załóżmy, że używasz klawiatury QWERTY takiej jak ta poniżej i że blackhole znajduje się po lewej stronie;
Pamiętaj, że lewy i prawy shift to dwa różne klawisze.
po każdym naciśnięciu klawisza lewy rząd klawiatury (klawisze pokryte czerwoną lewą linią) jest odrywany i wrzucany do czarnej dziury!
Tak więc, pierwszym może być naciśnięcie dowolnego klawisza na klawiaturze, ale od tego momentu żaden z LEFTMOST Tab , Caps, Shift, Ctrllub `klucze mogą być używane, w ogóle . (nadal można używać r-shift i r-ctrl)
Po następnym naciśnięciem klawisza, klucze 1, Q, A, Zi Altsą odrzucił w otchłań i nie mogą być wykorzystane później. Po tym, można stracić Space, X, S, W, 2i tak dalej.
Oczywiście chcesz zakończyć program tak szybko, jak to możliwe, aby wydłużyć czas ratowania; dlatego jest to gra w golfa i wygrywa najkrótszy program w naciśnięciach klawiszy !
Każda odpowiedź powinna zawierać listę naciśnięć klawiszy, więc jeśli moją odpowiedzią był ten program (w języku squardibblyack)
!HELP\.
lista klawiszy może wyglądać następująco:
Shift!HELP zmiana zwolnienia \.
długość: 8
Obawiam się, że to wyzwanie może być zbyt trudne, ale chciałbym zobaczyć rodzaje odpowiedzi!
źródło
print
kwalifikuje się jako STDOUT?Odpowiedzi:
CJam, 11 naciśnięć klawiszy
Kod jest
a lista klawiszy jest
Shift"HELP*") zmiana zwolnienia 9-
a oto demonstracja tego, jak to wygląda:
a oto jak działa kod:
Wypróbuj kod tutaj
źródło
"HELP*")9-[]+''+
. Nie mogę wpisać ostatnich czterech.E
, wygląda na to, że może zostać zabrany w otchłań!rs , 10 naciśnięć klawiszy (zakłada, że użytkownik używa Nano)
Lub równoważny edytor, w którym Shiftnie zaznacza tekstu.
To nie jest tak naprawdę język programowania, ale jeśli
sed
można go używać w Code Golf,rs
można go użyć.Right Shift ! Left E Left H Right L P Enter
Po prostu zastępuje pusty ciąg „HELP!”, Skutecznie drukując go na ekranie. Z grubsza odpowiada skryptowi sed:
Fajną częścią jest to, że
rs
automatycznie umieszcza się^/
przed wzorem zastępczym, w którym/
nie można znaleźć separatora ( ). Przydatny do wcięcia kodu.źródło
Enter
to także udar. 10 uderzeń.Wierzę, że najszybszym, jaki można to zrobić w dowolnym skrypcie, jest Random 11 z Pyth, ponieważ każdy język będzie wymagał jakiegoś znaku, takiego jak „p”, znak cudzysłowu lub gwiazdka, czy coś, to słowo
HELP!
, i Eto pójdzie szybkie, co oznacza dodatkowe naciśnięcia klawiszy, aby przesunąć kursor z powrotem przed Ewprowadzeniem H, jak znalazł, a następnie ponownie do przodu dla Li P.Jeśli masz coś, co wymaga słowa polecenia, na przykład
disp
lubecho
, musisz najpierw zrobić spację, zanim zostanie oderwane, Shifta !następnie użyj Homeklawisza, aby rozpocząć słowo, i klawiszy strzałek, jak opisano losowoHELP
. Ale będziesz się szperać, dopóki nie zostaniesz wciągnięty lub zgubisz klucze, których potrzebujesz zbyt szybko, aby wykonać którekolwiek z nich. Jest maksymalnie 14 znaków, i to zakładając, że twój ostatni to \lub |. Potrzebujesz tylko 10, abyHELP!
:SHIFT ! HOME E LT ARROW H RT ARROW L P ENTER
Cechą
"
lub*
czyP
dostanie wciśnięty tuż przed H. Więc 11 musi być najszybsze. Lub 9, jeśli pomińmy okrzyk i wielkie litery i nie mamy żadnego symbolu do wpisania.Ale nie, ja, będąc historykiem Internetu w roku 87.539.319 i wszystkim, będąc paranoikiem kosmitów i dziwacznego deszczu meteorów, nie mówiąc już o czarnej dziurze, nie zadowoliłbym się tym. Zanim wyruszyłem w kosmos, byłbym przygotowany, z tym artykułem, który znalazłem w moich badaniach, aby podziękować za to. Załadowałbym plik tekstowy, który ma już „POMOC!” i mieć program, który mógłby zapisać moją pozycję współrzędnych przy użyciu najnowszych danych satelitarnych śledzenia, które mamy do tego pliku. Ten program nazwałbym „hlp.c”, więc powinien wyglądać następująco:
7 naciśnięć klawiszy:
c Home h l p . Enter
Zdaję sobie sprawę, że mogę skrócić nazwę mojego pliku, ale nikt nie chce przypadkowo nadać swojej pozycji, pisząc na klawiaturze, Ha Enterzwłaszcza, jeśli program ostrzega również władze (trochę jak dzwonienie pod 911, gdy nie masz nagłego wypadku?), Więc wybierz trzyliterową nazwę pliku, a założymy, że nadal musimy mieć rozszerzenia plików zawierające co
.
najmniej 1 znak. Nazwanie gohlp
zamiasthelp
oznacza, że unikniemy korzystania z tych paskudnych, wbudowanych funkcji Pomocy, gdy mamy umrzeć w czarnej dziurze. Zdaję sobie sprawę, że mógłbym nawet pominąć pisanie, .crobiąc to h l p Enter, ale w ten sposób unikam tych paskudnychPlease supply file extension
lubCannot find hlp
błędy, kiedy mam zamiar zostać wciągnięty do czarnej dziury. „Śmieci w środku, śmieci w końcu” nadal będą standardem w przyszłości.Moja grafika wyglądałaby następująco:
Byłoby to również łatwe do zapamiętania, ponieważ jedynym „zacofaniem” jest pisanie na cpoczątku. Reszta jest taka sama jak nazwa pliku.
źródło
hlp.c
. Po trzecie, należy podać listę naciśnięć klawiszy dla programu, nie uruchamiając programu. Po czwarte,C
programy ...help.exe
(lubhelp.out
), aby uruchomić skompilowany plik kodu. I na koniec, jeśli naginasz reguły i tak często korzystasz z luk, dlaczego po prostu nie wywołać plikuh.c
?.c
pliku było to, że może to być CSCRIPT, a nie rzeczywisty kod C, który wymagałby kompilatora. Mająch.c
może oznaczać, próbując wpisać nazwę innego pliku, a tylko 1 znak w nazwie, że jest przypadkowo nazywa zamiast innego pliku - Wyjaśniłem, że już. Jakikolwiek kod znajdujący się w.c
pliku, czy byłConsole.Log("HELP!")
,Console.WriteLine("HELP!")
itp., Jest w dużej mierze nieistotny, zwłaszcza że zamierzał również zawierać kod do interfejsu z satelitami, aby uzyskać poprawkę współrzędnych - coś, co jestem pewien, że w przyszłości będzie otwarte źródło.HELP!
, jak wspomniałem, przed Kirby i tylko mniej, na przykład 9, jeśli wielkie litery i użycie Shift nie miały znaczenia i nie musieliśmy mieć postaci przed lub poHELP
, na przykład z wykrzyknikiem, lub w przypadku Kirby, konieczności wpisywania klucza znak, jak ap
lub,*
aby zainicjować program.help.exe
ihelp.out
nie będzie działać z czarnej dziury zgrywania oprócz kluczy.e
Zniknie w momencieexe
podszedł, at
znika, gdy próbuje wpisaćout
. Można wpisaćt
wout
pierwsze, a następnie naciśnij przycisk Start, a następnie wpiszHELP
część, ale jeśli można zachować rozszerzenie do 1 charakteru, dlaczego nie?