Nhanh chóng! Thoát khỏi lỗ đen!


28

Đó là năm 87.539.319 và việc đi bộ trong không gian đơn độc hiện nay rất phổ biến, nhiều người tự mình du hành vào vũ trụ, không có gì ngoài chiếc máy bay phản lực trên lưng, lập trình khóa học của họ bằng máy tính cá nhân và bàn phím khi họ đi.

Bạn là một người như vậy; bạn đang ở trên một con tàu vũ trụ đáng yêu, yên bình, thì đột nhiên, bạn bị bao vây bởi lực hấp dẫn của một lỗ đen!

Khi bạn lao thẳng xuống hố đen này, xoắn ốc vào bên trong nhanh hơn, bạn nhận ra một cơ hội sống sót của mình là phát đi một thông điệp đau khổ, và hy vọng một con tàu gần đó sẽ đến giải cứu bạn.

Vì vậy, bạn thoát ra khỏi bàn phím và bắt đầu gõ một chương trình.

Chương trình của bạn có thể bằng bất kỳ ngôn ngữ nào và phải in HELP!ra thiết bị xuất chuẩn (PC của bạn phát sóng tất cả các thiết bị xuất chuẩn ở sâu trong không gian.)

Tuy nhiên, khi bạn đang ở gần một hố đen, bàn phím của bạn đang dần bị xé toạc!

Giả sử bạn đang sử dụng bàn phím QWERTY như bàn phím bên dưới và lỗ đen nằm ở bên trái của bạn;

QWERTY TỪ KHÓA

Hãy nhớ rằng, dịch chuyển trái và phải là hai phím khác nhau.

sau mỗi lần nhấn phím, hàng trên cùng bên trái của bàn phím của bạn (các phím được bao phủ bởi dòng màu đỏ bên trái nhất) bị xé toạc và ném vào lỗ đen!

Vì vậy, bấm phím đầu tiên của bạn có thể là một phím bất kỳ trên bàn phím, nhưng từ đó trở đi không ai trong số các tận cùng bên trái Tab , Caps, Shift, Ctrlhoặc `phím có thể được sử dụng, ở tất cả . (r-shift và r-ctrl vẫn có thể được sử dụng)

Sau khi bấm phím tiếp theo, các phím 1, Q, A, ZAltđược ném vào vực thẳm, và có thể không được sử dụng sau đó. Sau đó, bạn bị mất Space, X, S, W, 2và vân vân.

Rõ ràng, bạn muốn hoàn thành chương trình của mình càng nhanh càng tốt, để thời gian giải cứu được tăng lên; do đó, đây là môn đánh gôn và chương trình ngắn nhất trong các lần nhấn phím sẽ thắng!

Mỗi câu trả lời sẽ cung cấp một danh sách các phím bấm, vì vậy, nếu câu trả lời của tôi là chương trình này (theo ngôn ngữ squardibblyack)

!HELP\.

một danh sách chính có thể trông giống như:

Shift!HELP phát hành ca \.

chiều dài: 8

Tôi lo lắng thử thách này có thể quá khó khăn, nhưng tôi rất muốn xem các loại câu trả lời được gửi!


13
Tôi đánh giá thấp điều này bởi vì nó cảm thấy quá hạn chế để có nhiều sáng tạo.
isaacg

4
Chúng ta có thể cho rằng sử dụng shell python mà không printđủ điều kiện là STDOUT không?
user80551

3
Nếu bàn phím của tôi có bàn phím số thì sao?
mbomb007

4
Điều này có thể tốt hơn một chút với các phím mũi tên.
user80551

6
Khóa mũ có còn hiệu quả nếu được nhấn mặc dù khóa đã biến mất?
Josh Caswell

Câu trả lời:


42

CJam, 11 tổ hợp phím

Mã là

"HELP*")9-

và danh sách chính là

Shift"HELP*") phát hành ca 9-

và đây là một minh chứng về vẻ ngoài của nó:

nhập mô tả hình ảnh ở đây

và đây là cách mã hoạt động:

"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";

Hãy thử mã ở đây


2
Sử dụng dấu hoa thị là khá thông minh! Tôi chưa bao giờ nghĩ về điều đó.
theonlygusti

2
Chà, tôi không thể làm điều này trong GolfScript. Nó hơi quá dài. Chuyển đổi từ một số nguyên sang ascii là không hiệu quả. "HELP*")9-[]+''+. Tôi không thể gõ bốn cái cuối cùng.
mbomb007

3
Tôi chỉ biết rằng CJam sẽ có câu trả lời ...
Jerry Jeremiah

9
Vì vậy, một trong những ngôn ngữ chứng minh tương lai nhất trên thế giới rõ ràng là CJam.
Dành cho

5
Xem ngón tay của bạn khi bạn chạm vào E, có vẻ như nó có thể bị đưa xuống vực thẳm!
Luke Luke REINSTATE MONICA của Canada

3

rs , 10 tổ hợp phím (giả sử người dùng đang sử dụng Nano)

Hoặc biên tập viên tương đương ở đâu Shift đó không chọn văn bản.

Đây không thực sự là ngôn ngữ lập trình, nhưng nếu sedcó thể được sử dụng trên Code Golf, thì rscó thể sử dụng.

Right Shift ! Left E Left H Right L P Enter

HELP!

Nó chỉ thay thế chuỗi trống bằng "GIÚP!", Hiệu quả in ra màn hình. Tương đương với kịch bản sed:

s/^/HELP!/

Phần thú vị là rstự động đặt ^/trước một mẫu thay thế nơi /không tìm thấy dấu phân cách ( ). Tiện dụng cho mã thụt lề.


Bạn quên rằng đó Enterlà một đột quỵ, quá. 10 nét.
vapcguy

1
@vapcguy Đúng. Đã sửa.
kirbyfan64sos

-3

Tôi tin rằng điều nhanh nhất có thể được thực hiện trong bất kỳ kịch bản nào là 11 của Random với Pyth, vì bất kỳ ngôn ngữ nào cũng sẽ yêu cầu một số ký tự, như "p" hoặc dấu ngoặc kép hoặc dấu hoa thị hoặc một cái gì đó, sau đó là từ HELP!, và điều đó Esẽ đi nhanh chóng, có nghĩa là nhấn thêm phím để di chuyển con trỏ trở lại trước Eđể đưa vào H, như anh ta đã tìm thấy, sau đó chuyển tiếp lần nữa cho LP .

Nếu bạn có bất cứ thứ gì yêu cầu một từ lệnh, như disphoặc echo, trước tiên bạn phải tạo một khoảng trắng trước khi nó bị xé ra, Shift!sau đó sử dụng Homephím để bắt đầu từ của bạn và các phím mũi tên như được mô tả ngẫu nhiên HELP. Nhưng bạn sẽ dò dẫm theo cách của mình cho đến khi bạn bị hút vào hoặc mất chìa khóa bạn cần quá nhanh để thực hiện bất kỳ thao tác nào. Chỉ có tối đa 14 ký tự và giả sử cái cuối cùng của bạn là \hoặc |. Bạn cần 10 chỉ để làm HELP!:

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

Việc xác định "hoặc *hoặc Psẽ được nhấn ngay trước H. Vì vậy, 11 đã được nhanh nhất. Hoặc 9 nếu chúng ta bỏ qua câu cảm thán và viết hoa mọi thứ và không có biểu tượng để gõ.

Nhưng không, tôi, là một nhà sử học internet vào năm 87.539.319 và tất cả, và bị hoang tưởng về người ngoài hành tinh và mưa sao băng kỳ dị, chứ đừng nói đến lỗ đen, tôi sẽ không giải quyết cho điều đó. Trước khi tôi ra ngoài đi bộ ngoài không gian, tôi đã chuẩn bị, với bài viết này tôi sẽ tìm thấy trong nghiên cứu của mình để cảm ơn vì điều đó. Tôi sẽ tải một tệp văn bản đã có "GIÚP!" trong đó, và có một chương trình có thể ghi vị trí tọa độ của tôi bằng cách sử dụng dữ liệu vệ tinh theo dõi mới nhất mà chúng tôi có vào tệp đó. Chương trình đó tôi gọi là "hlp.c", vì vậy nó sẽ đi:

7 tổ hợp phím:

c Home h l p . Enter

Tôi nhận ra rằng tôi có thể làm cho tên tệp của mình ngắn hơn, nhưng không ai muốn phát sóng vị trí của họ một cách tình cờ bằng cách gõ HEnterđặc biệt là nếu chương trình cũng thông báo cho chính quyền (giống như gọi 911 khi bạn không gặp trường hợp khẩn cấp?) đi với tên tệp gồm 3 chữ cái và chúng tôi sẽ giả sử rằng chúng tôi vẫn phải có các phần mở rộng tệp có .tối thiểu 1 ký tự. Ngoài ra, đặt tên hlpthay vì helpcó nghĩa là chúng tôi tránh nhận được các tính năng Trợ giúp tích hợp, khó chịu đó khi chúng tôi sắp chết trong một lỗ đen. Tôi nhận ra rằng tôi thậm chí có thể bỏ qua việc gõ phím .cchỉ bằng cách thực hiện h l p Enter, nhưng bằng cách này tôi tránh được những lỗi khó chịu khi tôi bị hút vào một lỗ đen. "Rác vào, rác ra", sau tất cả, vẫn sẽ là một tiêu chuẩn trong tương lai.Please supply file extension hoặcCannot find hlp

Vì vậy, đồ họa của tôi sẽ trông như:

nhập mô tả hình ảnh ở đây

Và điều này cũng sẽ dễ nhớ, vì "ngược" duy nhất là gõ cđầu tiên. Phần còn lại giống như tên tập tin.


2
Trước hết, nếu bạn đang chạy một chương trình (đã có mã trong đó) thì nó có thể được coi là sự kết hợp của một số lỗ hổng tiêu chuẩn . Thứ hai, đây là một mã golf, vì vậy bạn phải cung cấp mã thực tế, không phải là một giả định rằng mã đã có trong một tệp được gọi . Thứ ba, bạn phải cung cấp danh sách tổ hợp phím cho chương trình, không chạy chương trình. Thứ tư, các chương trình ...hlp.cC
Trình tối ưu hóa

1
... Đừng chạy như thế. Trước tiên bạn cần biên dịch chúng và chạy chúng. Vì vậy, ít nhất bạn sẽ phải làm help.exe(hoặc help.out) để chạy tệp mã được biên dịch. Và cuối cùng, nếu bạn đang bẻ cong các quy tắc và sử dụng các sơ hở rất nhiều, tại sao không chỉ đơn giản là có một tệp được gọi h.c?
Tối ưu hóa

Mục đích của một .ctệp là nó có thể là CSCRIPT, không phải mã C thực tế sẽ yêu cầu trình biên dịch. Có h.cthể có nghĩa là khi cố gắng nhập tên của một tệp khác, chỉ có 1 ký tự trong tên, nó được gọi vô tình thay vì một tệp khác - tôi đã giải thích điều đó rồi. Bất cứ mã nào có trong .ctệp, cho dù đó là Console.Log("HELP!"), Console.WriteLine("HELP!")v.v., phần lớn không liên quan, đặc biệt là vì nó cũng sẽ bao gồm mã để giao diện với các vệ tinh để sửa lỗi tọa độ - một điều tôi chắc chắn trong tương lai sẽ được mở nguồn.
vapcguy

Quan điểm của tôi với bài đăng này cũng vậy, là chỉ ra rằng có một tên tệp, hoặc một cái gì đó nằm ngoài giới hạn của quy tắc, sẽ là cách duy nhất để đánh bại 11 tổ hợp phím, btw, vì tôi chỉ mất 10 lần HELP!, như tôi đã đề cập trước Kirby, và chỉ ít hơn, như 9, nếu viết hoa và sử dụng Shift không thành vấn đề và chúng tôi không phải có một ký tự trước hoặc sau HELP, như với dấu chấm than, hoặc trong trường hợp của Kirby, phải gõ một phím nhân vật, giống như một phoặc *để bắt đầu chương trình.
vapcguy

help.exehelp.outsẽ không làm việc với các hố đen xé nhau trong những chìa khóa. Cái esẽ biến mất theo thời gian exeđã đến, và cái tđó biến mất khi cố gắng gõ out. Bạn có thể gõ ttrong out, đầu tiên, sau đó nhấn Home, và gõ HELPmột phần, nhưng nếu bạn có thể giữ cho các phần mở rộng cho 1 nhân vật, tại sao không?
vapcguy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.