快!逃离黑洞!


28

今年是87,539,319年,如今孤独的太空行走已司空见惯,许多人独自进入太空,背上只有喷气背包推动着他们前进,并随身携带个人计算机和键盘为自己的路线编程。

你就是这样一个人。您正在一次可爱而宁静的太空漫步中,突然之间,您被黑洞的引力所迷惑!

当您朝这个黑洞急速下降时,向内旋转的速度越来越快,您意识到生存的唯一机会就是广播遇险消息,并希望附近的一艘船能够救助您。

因此,您松开键盘,然后开始键入程序。

您的程序可以使用任何语言,并且必须打印HELP!到stdout(您的PC将所有stdout广播到很深的空间。)

但是,当您靠近黑洞时,您的键盘正慢慢被撕成碎片!

假设您正在使用QWERTY键盘(如下面的键盘),并且黑洞在您的左侧;

QWERTY键盘布局

请记住,左移和右移是两个不同的键。

每次按键后,键盘最左边的一行(最左边的红线覆盖的键)被撕开并扔入黑洞!

所以,你的第一个按键可以是键盘上的任意键,但从那时起没有的最左边 TabCapsShiftCtrl`可使用按键,在所有。(仍可以使用r-shift和r-ctrl)

下一个按键之后,键1QAZAlt被抛入深渊,并且可以不被随后使用。在这之后,你输了SpaceXSW2等等。

显然,您希望尽快完成程序,以增加救援时间。因此,这是代码高尔夫球,并且按键操作中最短的程序胜出!

每个答案都应提供按键列表,因此,如果我的答案是此程序(使用squardibblyack语言)

!HELP\.

密钥列表可能如下所示:

Shift!HELP 释放移位 \.

长度:8

我担心这个挑战可能太难了,但是我很想看看提交的答案!


13
我对此表示反对,因为它太受限制而无法发挥很多创造力。
isaacg 2015年

4
我们是否可以假设使用不带Python外壳的printSTDOUT?
user80551

3
如果我的键盘有数字键盘怎么办?
mbomb007

4
使用箭头键可能会更好。
user80551 2015年

6
如果按键消失了,即使按下大写锁定键仍然有效?
乔什·卡斯韦

Answers:


42

CJam,11次击键

该代码是

"HELP*")9-

关键列表是

Shift"HELP*") 释放移位 9-

这是外观的演示:

在此处输入图片说明

代码是这样工作的:

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

在这里尝试代码


2
使用星号非常聪明!我从来没有想过。
theonlygusti 2015年

2
好吧,我无法在GolfScript中做到这一点。太久了 从整数转换为ascii效率很低。"HELP*")9-[]+''+。我不能输入最后四个。
mbomb007'2015-4-23

3
我只知道CJam会回答...
Jerry Jeremiah

9
因此,世界上最有前瞻性的语言之一就是CJam。
Fors

5
按下时请注意手指E,看起来它可能会陷入深渊!
加拿大卢克REINSTATE MONICA 2015年

3

rs,10次击键(假设用户正在使用Nano)

或等效的编辑器在哪里 Shift不选择文本的。

这实际上不是一种编程语言,但是如果sed可以在Code Golf上使用,则rs可以使用。

Right Shift ! Left E Left H Right L P Enter

HELP!

它只是将空字符串替换为“ HELP!”,从而将其有效地打印到屏幕上。大致相当于sed脚本:

s/^/HELP!/

最酷的部分是,它会rs自动放置^//找不到定界符()的替换模式的前面。缩进代码非常方便。


您也忘记Enter了中风。10招。
vapcguy 2015年

1
@vapcguy对。固定。
kirbyfan64sos 2015年

-3

我相信最快可以在任何脚本中完成的操作是Random的带有Pyth的11,因为任何语言都需要一些字符,例如“ p”或引号或星号之类的东西,然后是单词HELP!,然后E就可以了快速,意为移动光标回额外的按键之前,E摆在H,就像他发现,然后再次向前的LP

如果您有需要命令字的内容,例如dispecho,则必须先删除空格,然后再使用Shift!,然后使用Home键开始输入单词,并使用箭头键(如随机描述)HELP。但是您会四处摸索,直到您被吸引或丢失了太快才能完成任何这些操作所需的钥匙。最多只能有14个字符,并且假设您的最后一个字符是\|。您只需要做10个即可HELP!

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

定义"*P将在之前被按下H。因此11必须是最快的。或9如果我们省略了感叹号并将所有内容都大写且没有符号可输入。

但是不,我是在87,539,319年乃至所有的互联网历史学家,并且对外星人和怪异的流星雨抱有偏执,更不用说黑洞了,我不会为此感到满足。在我进行太空行走之前,我已经做好了准备,准备在研究中找到这篇文章来对此表示感谢。我将加载一个已经有“帮助!”的文本文件。里面有一个程序,可以使用我们拥有的最新跟踪卫星数据将我的坐标位置写入该文件。该程序我将其称为“ hlp.c”,因此它将运行:

7个按键:

c Home h l p . Enter

我意识到我可以使文件名更短,但是没有人希望通过键入H和来偶然地广播它们的位置Enter,尤其是如果该程序还向当局发出警报(有点像在紧急情况下拨打911吗?),那么让我们加上3个字母的文件名,我们假设我们仍必须使用文件扩展名,且扩展名.至少为1个字符。此外,命名它hlp而不是命名它help意味着当我们将要死在黑洞中时,我们避免获得那些讨厌的内置帮助功能。我意识到我什至可以.c只做一次就 忽略键入h l p Enter,但是这样我避免了那些讨厌的Please supply file extensionCannot find hlp即将被黑洞吸引时出现错误。毕竟,“垃圾进,垃圾出”仍然是将来的标准。

所以我的图形看起来像:

在此处输入图片说明

而且这也将很容易记住,因为唯一的“向后”首先输入c。其余的就像文件名一样。


2
首先,如果要运行一个程序(程序中已经有代码),则可以将其视为几个 标准 漏洞的组合。其次,这是一个代码清单,因此您必须提供实际的代码,而不是假设该代码已经存在于名为的文件中hlp.c。第三,应该提供该程序的击键列表,而不是运行该程序。第四,C程序...
Optimizer

1
...不要那样跑。您需要先编译它们并运行它们。因此,您至少必须要做help.exe(或help.out)操作才能运行已编译的代码文件。最后,如果您大刀阔斧地利用漏洞,那么为什么不简单地创建一个名为的文件h.c呢?
Optimizer

.c文件的目的是可能是CSCRIPT,而不是需要编译器的实际C代码。有h.c当试图在另一个文件名输入,只有1名字符可能意味着,它被意外调用,而不是另一个文件-我解释了。无论.c文件中包含什么代码,无论是Console.Log("HELP!")Console.WriteLine("HELP!")等等,都是无关紧要的,尤其是因为它还将包含与卫星交互以获取坐标修复的代码-我确定将来会开放资源。
vapcguy 2015年

我在这篇文章中的观点也是要指出,拥有文件名或超出规则范围的内容将是打败11次击键的唯一方法,顺便说一句,因为它只需要10次HELP!,就像我提到的那样如果不是大写和使用Shift没关系,并且我们不必在字符之前或之后使用字符HELP,例如带有感叹号,或者在Kirby的情况下,只需键入一个键即可字符,例如p*以启动程序。
vapcguy 2015年

并且help.exe并且help.out不会与黑洞分开的键一起工作。该e会由时间来了exe来了,并t试图键入时消失out。您可以先输入tin out,然后按Home键,然后输入HELP零件,但是如果可以将扩展名保留为1个字符,为什么不呢?
vapcguy 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.