Hızlı! Kara delikten kaçış!


28

87.539.319 ve yalnız uzay yürüyüşü artık yaygındır, birçok insan kendileri ile uzaya yolculuk eder, sırtlarında bir jetpack'ten başka bir şey tarafından itilmez, rotalarını kişisel bir bilgisayar ve klavye ile giderken programlar.

Siz böyle bir insansınız; güzel, huzurlu bir uzay yürüyüşüne çıktınız, ne zaman, bir anda, bir kara deliğin yerçekimi tarafından yakalandınız!

Bu kara deliğe doğru düştüğünüzde, daha hızlı içe doğru kıvrılarak girerken, hayatta kalma şansınızın bir tehlike mesajı yayınlamak olduğunu fark edersiniz ve yakındaki bir geminin sizi kurtarmaya geleceğini umarsınız.

Böylece, klavyenizi kırarsınız ve bir program yazmaya başlarsınız.

Programınız herhangi bir dilde olabilir ve HELP!stdout'a yazdırmanız gerekir (PC'niz tüm stdout'ları uzayın derinliklerine kadar yayınlar.)

Ancak, bir kara deliğin yakınındayken, klavyeniz yavaşça parçalara ayrılıyor!

Aşağıdaki gibi bir QWERTY klavye kullandığınızı ve kara deliğin solunuzda olduğunu varsayalım;

QWERTY KLAVYE LAYOUT

Unutma, sola ve sağa kaydırma iki farklı anahtar.

Her tuşa basıldıktan sonra, klavyenizin en solundaki satır (en soldaki kırmızı çizgi ile kaplı tuşlar) sökülür ve kara deliğe fırlatılır!

Yani, ilk tuşa basma klavyedeki herhangi bir tuşa olabilir ama daha sonra itibaren hiçbiri gelen en soldan Tab , Caps, Shift, Ctrlveya `anahtarlar, kullanılabilir hiç . (r-shift ve r-ctrl hala kullanılabilir)

Bir sonraki tuşa basıldıktan sonra, anahtarlar 1, Q, A, Zve Altuçuruma fırlatılan ve daha sonra kullanılamaz. Bundan sonra, kaybetmek Space, X, S, W, 2vb.

Açıkçası, kurtarma süresinin arttırılması için programınızı mümkün olduğunca çabuk tamamlamak istiyorsun; Bu nedenle, bu kod golf ve tuşa basma en kısa programı kazanır!

Her cevap bir tuşa basma listesi içermelidir, bu yüzden cevabım bu program olsaydı (dilde squardibblyack)

!HELP\.

Bir anahtar liste şöyle görünebilir:

Shift!HELP vardiya bırak \.

uzunluk: 8

Bu zorluğun çok zor olabileceğinden endişeliyim, ancak gönderilen cevapların türlerini görmeyi çok isterim!


13
Bunu küçümsüyorum, çünkü çok fazla yaratıcılığa sahip olamayacak kadar kısıtlı hissediyor.
isaacg

4
Python kabuğunu printSTDOUT olarak nitelendirmeden kullanabileceğimizi varsayabilir miyiz ?
user80551

3
Ya klavyemde sayısal tuş takımı varsa?
mbomb007

4
Bu ok tuşları ile biraz daha iyi olabilirdi.
user80551

6
Tuş kaybolduğu halde tuşlara basıldığında hala kilit etkili mi?
Josh Caswell

Yanıtlar:


42

CJam, 11 tuş vuruşlarını

Kod

"HELP*")9-

ve anahtar listesi

Shift"HELP*") vardiya bırak 9-

ve burada nasıl göründüğünün bir göstergesi:

görüntü tanımını buraya girin

ve burada kod nasıl çalışır:

"HELP*"              "This puts the string HELP* on stack";
       )             "This takes out the last character of the string and puts it
                      on the stack as a character";
        9-           "This simply reduces 9 from the ASCII code of * character
                      present on the stack which makes it an !";
                     "CJam automatically prints everything that is on stack";

Kodu burada deneyin


2
Yıldız kullanmak oldukça zekiydi! Bunu asla düşünmedim.
theonlygusti

2
Bunu GolfScript'te yapamadım. Biraz fazla uzun. Bir tamsayıdan asciiye dönüştürme verimsizdir. "HELP*")9-[]+''+. Son dördünü yazamam.
mbomb007

3
CJam'ın bir cevabı olacağını biliyordum ...
Jerry Jeremiah

9
Bu yüzden dünyanın en geleceğe dayanıklı dillerinden biri görünüşe göre CJam.
Fors

5
Parmağınıza bastığınızda parmağınıza dikkat edin E, uçuruma karışmış gibi görünüyor!
Kanadalı Luke MONICA'YI

3

rs , 10 tuş vuruşu (kullanıcının Nano kullandığını varsayar)

Veya Shiftmetni seçmeyen eşdeğer bir editör .

Bu gerçekten bir programlama dili değildir, ancak sedCode Golf'da kullanılabilirse, o rszaman kullanılabilir.

Right Shift ! Left E Left H Right L P Enter

HELP!

Sadece boş dizgiyi "YARDIM!" İle değiştirir, ekrana etkin bir şekilde basar. Sed script'e kabaca eşdeğer:

s/^/HELP!/

Soğuk kısım, sınırlayıcının ( ) bulunmadığı bir değiştirme deseninin önüne rsotomatik olarak geçmesidir . Girinti kodu için kullanışlı.^//


Bunun Enterbir vuruş olduğunu da unutuyorsun . 10 vuruş.
vapcguy

1
@vapcguy Doğru. Sabit.
kirbyfan64sos

-3

Buna daha senaryodaki yapılabilir hızlı Rastgele en 11 Pyth ile, inanıyoruz herhangi bir dil daha sonra "p" veya fiyat teklifi işareti veya yıldız işareti falan gibi kelime bazı karakter gerektirir gidiyor beri HELP!ve bu Egidecek hızlı, imleç geri hareket ettirmek için ekstra tuşa basma anlam önce Ekoymak için Hbulduğu benzerleri için tekrar ileri, sonra Lve P.

Komut kelimesi gerektiren herhangi bir şeye sahipseniz, dispveya gibi echo, önce parçalanmadan önce bir boşluk bırakmanız gerekir Shiftve !ardından Homekelimenizi başlatmak için tuşu ve Rastgele'nin tanımlandığı şekilde ok tuşlarını kullanın HELP. Ancak bunlardan herhangi birini yapmak için çok hızlı bir şekilde ihtiyaç duyduğunuz anahtarları emilene veya kaybolana kadar etrafınızda dolanacaksınız. Yalnızca en fazla 14 karakter var ve bu da sonuncunuzun \veya olduğunu varsayıyor |. Sadece yapmak için 10'a ihtiyacınız var HELP!:

SHIFT ! HOME E LT ARROW H RT ARROW L P ENTER

Tanımlarken "ya *ya Phemen önce preslenmiş alacağı H. Yani 11 en hızlı olmalı. Veya 9 ünlem dışında bırakırsak ve her şeyi büyük harfle yazıp yazacak bir sembolümüz yoksa.

Ama hayır, ben, 87,539,319 ve hepsinde internet tarihçisi olmak ve uzaylılar ve ucube meteor yağmuru paranoyaklığı olmak, kara delik bıraksa bile, buna razı olmazdım. Uzayda yürümeye çıkmadan önce hazırlanırdım, bu yazı ile araştırmamda bu konuda teşekkür ederim. Zaten "YARDIM!" Olan bir metin dosyası yüklerdim. ve bu dosyaya koyduğumuz en son izleme uydu verilerini kullanarak koordinat pozisyonumu yazabilecek bir program var. O programa "hlp.c" diyeceğim, böylece devam edecek:

7 tuş vuruşları:

c Home h l p . Enter

Dosya ismimi daha kısa tutabileceğimin farkındayım, ancak hiç kimse yazarak kaza yaparak pozisyonlarını yayınlamak istemez Hve Enterözellikle program yetkilileri uyarırsa (acil bir durum yoksa 911'i aramak gibi bir şey?) 3 harfli bir dosya adı ile gidersek, hala .en az 1 karakterlik dosya uzantılarına sahip olmamız gerektiğini varsayacağız . Ayrıca, bunun hlpyerine adlandırmak help, kara delikte ölmek üzere olduğumuzda bu kötü, yerleşik Yardım özelliklerini almaktan kaçındığımız anlamına gelir. .cSadece yaparak yazmayı bile ihmal edebileceğimin farkındayım h l p Enter, ama bu şekilde o iğrenç Please supply file extensionveyaCannot find hlpkara deliğe çekilmek üzereyken hatalar. Sonuçta "çöp, çöp dışarı", gelecekte hala standart olacak.

Böylece grafiğim şöyle görünür:

görüntü tanımını buraya girin

Ve bunu hatırlamak da kolay olurdu, çünkü sadece "geri kalmışlık" cilk önce yazmaktır . Gerisi sadece dosya adı gibidir.


2
Her şeyden önce, eğer bir program çalıştırıyorsanız (içinde kod zaten var), o zaman birkaç standart boşluktan oluşan bir kombinasyon olarak kabul edilebilir . İkincisi, bu bir kod golfüdür, bu nedenle kodun zaten adı verilen bir dosyada mevcut olduğu varsayımını değil, gerçek kodu vermeniz gerekir hlp.c. Üçüncüsü, programı çalıştırmamanız için programdaki tuş vuruşlarının bir listesini vermeniz gerekiyor. Dördüncü olarak, Cprogramlar ...
Doktor

1
... böyle koşma. Önce onları derlemeli ve çalıştırmalısın. Böylece derlenmiş kod dosyasını çalıştırmak için en azından yapmanız help.exe(veya help.out) yapmanız gerekecektir . Ve son olarak, kuralları büküyorsanız ve boşluklardan çok fazla faydalanıyorsanız, neden sadece bir dosyaya sahip değilsiniz h.c?
Doktor

Bir .cdosyanın amacı , derleyici gerektirecek gerçek C kodu değil, CSCRIPT olabilmesiydi. Having h.cadına sadece 1 karakteriyle, başka bir dosya adını girmeniz çalışırken yanlışlıkla yerine başka bir dosyanın çağrılmasını, anlamına gelebilir - Zaten açıkladı. İçinde ne olursa olsun kod olduğunu .c, dosyanın o olup olmadığını Console.Log("HELP!"), Console.WriteLine("HELP!")vs., aynı zamanda bir düzeltme koordinat almak için uydularla arayüze kod eklemek için gidiyordu, özellikle de büyük ölçüde ilgisiz - Gelecekte eminim şey açık olacak kaynak.
vapcguy

Bu yazıda benim açımdan, bir dosya adına veya kuralların dışında bir şeylere sahip olmanın, 10 tuşa basmadan önce 10 tuşa basmaya başlamasının tek yolu olacağını HELP!belirtmekti. Kirby'den önce ve daha az, 9 gibi, büyük harf kullanımı ve Shift'i kullanmanın bir önemi olmadıysa HELPve ünlem işaretinden önce veya sonra bir karakter yazmamız gerekmediyse , ünlem işareti ile veya Kirby'in durumunda bir anahtar girmek zorunda kaldık. karakteri, a gibi pveya *programı başlatmak için.
vapcguy

Ve help.exeve help.outkara delik en dışında tuşlarının müthiş işe yaramaz. eZaman gitmiş olurdu exegeldi ve tyazmaya çalışırken gitmiş out. Sen yazabilirsiniz tiçinde out, önce, sonra Ev basın ve yazın HELPsen neden olmaz 1 karakterine uzantısını tutsaydı parçası ama?
vapcguy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.