打印“ N NE E SE S SW W NW”


47

这似乎是微不足道的,但是由于经过一些努力,我无法击败J语言中的字面解决方案,因此我认为这可能会带来不错的挑战(不过,很明显,这并不是针对J的挑战)。

标题说明了一切。您只需要编写返回或打印的程序或函数(不带参数):

N NE E SE S SW W NW

您可以使用换行符代替空格。

一个无参数函数,返回一个字符串数组,例如

['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW']

也可以接受。

字母可以是大写或小写字母,但不能混合使用。


9
也许让他们在任何顺序输出会有些有趣
乔金

3
@JoKing当然,我将其删除。老实说,我没想到有人会提交使用完整字面值的答案-这与问题的实质不同。正如我所说,之所以出现,是因为尽管字符串具有某种规则性和结构,但我无法击败J中的文字。关键是要利用这种规律性来击败字面上的答案。对我不好,因为没有更明确。允许他们执行任何命令也会导致失败,因此我不想进行更改。
约拿

3
@UnrelatedString我拥有的最有前途的想法是要注意,方向对应于提出的权力0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5。不幸的是,然后将这些结果映射到字母所需的J代码最终比文字昂贵。
约拿(Jonah)

1
啊,聪明!我想知道映射对于高斯整数1, 1+i, i, -1+i, -1, -1-i, -i, 1-i是否可能更好,因此每个基数方向上有一个实部或虚部,而不是两个。但是,生成这些可能会更困难,除非有某种方法可以将i的那些幂四舍五入为0?我不知道J中有多容易或有多难,但这是一个主意。
不相关的字符串

3
感觉条目还应该以其语言显示朴素的“ echo this string”版本,以便进行比较,并判断缩短的%?
Dewi Morgan

Answers:


18

画布,12 字节

>X½+T)AuS{⁹‟

在这里尝试!

字符串,简单地压缩。


2
您能否更详细地说明其工作原理?
Dillanm

2
@Dillanm没什么好说的-Canvas具有内置的压缩​​器(应通过ctrl + o→字符串压缩访问),在这里仅存储所需的字符("NESW "),然后在base-5中存储单个字符字符。
dzaima

56

bash(24字节)

使用括号扩展

echo N {N,,S}E S {S,,N}W

与硬编码的长度相同

echo N NE E SE S SW W NW

但是,当输出更多的指南针点时,它变得更加有趣

echo N NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW

大括号扩展

echo N {{N,,E}N,,{E,,S}S}E S {{S,,W}S,,{W,,N}N}W

否则,如果可以更改顺序(17个字节),诀窍是没有引号的empy字符串参数将消失

echo {N,,S}{W,,E}

1
这很有趣,我不知道您可能有空位是大括号表达式!
6

1
@flawr植根时有用:mount -t proc{,,}
gronostaj

7
cp file{,.bak}
Oliphaunt

43

莫宁顿弯月4395 3823字节

Take Northern Line to Bank
Take District Line to Parsons Green
Take District Line to Paddington
Take Bakerloo Line to North Wembley
Take Bakerloo Line to Charing Cross
Take Bakerloo Line to Charing Cross
Take Bakerloo Line to Charing Cross
Take Bakerloo Line to Charing Cross
Take Northern Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Barbican
Take Circle Line to Bank
Take Circle Line to Aldgate
Take Circle Line to Embankment
Take Bakerloo Line to Charing Cross
Take Bakerloo Line to Charing Cross
Take Bakerloo Line to Charing Cross
Take Bakerloo Line to Charing Cross
Take Northern Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Bayswater
Take Circle Line to Hammersmith
Take Circle Line to Baker Street
Take Circle Line to Bank
Take Circle Line to Embankment
Take Northern Line to Stockwell
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Farringdon
Take Circle Line to Hammersmith
Take Circle Line to Blackfriars
Take Circle Line to Bank
Take Circle Line to Moorgate
Take Northern Line to Waterloo
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Westminster
Take Circle Line to Hammersmith
Take Circle Line to Tower Hill
Take Circle Line to Bank
Take Circle Line to Edgware Road
Take Circle Line to Liverpool Street
Take Central Line to Mile End
Take District Line to Victoria
Take Victoria Line to Seven Sisters
Take Victoria Line to Victoria
Take Circle Line to Victoria
Take District Line to Mile End
Take District Line to Bank
Take Circle Line to Bank
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Barbican
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Bayswater
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Baker Street
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Farringdon
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Embankment
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Blackfriars
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Moorgate
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Westminster
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Tower Hill
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Aldgate
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Edgware Road
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Bank
Take Northern Line to Mornington Crescent

在线尝试!

期望您能读完所有这些内容后,我要简要介绍一下我的方法。其主要思想是存储字符的3份NESW在上环线各站,通过银行-哈默史密斯。这些字符是从Charing Cross站点名称的开头开始构建的。然后,  使用Mile End和Charing Cross从精心选择的站点名称的中间进行构造,并将其存储在Bank中,以便可以在串联的Hammersmith中进行收集。最后,在Paddington上将字符一个接一个地连接起来,如果以后需要再次使用它们,可以通过Bank-Hammersmith再次复制它们。


我认为当前的解决方案至少在访问站点的数量方面接近于采用这种策略的最佳方案:仅2次我将站点用于公交:

  1. 到达七姐妹(通过维多利亚车站)
  2. 然后返回莫宁顿弯(通过银行)。

如果我没有忘记的话,所有其他站点访问都是存储/检索有用的东西,或者(部分)使用站点功能。

至于行长,我尝试在“ Circle Line”上选择最短的名称,但是可能会有一些小的改进。在District上存储内容可能会减少一些字节。


有两个想法可以使高尔夫更进一步:1.从一个站点中获取“ NE”,“ SW”,“ NW”,“ SE”(例如Ne,使用asden,Swiss Cottage,Acton To wn和Mansion Hou se)2.尝试利用帕丁顿(Paddington)使得连接“ W”比连接起来更容易W 。这确实需要更多的开销来“刷新”帕丁顿,所以它可能不会有任何收获。
离散蜥蜴

4
这是否使用Dollis Hill循环规则?如果是这样,我认为可以通过使用Argyle Street抛物线甚至是Webb-Ellis协议的稍微修改的版本来改进。
理查德·沃德


24

brainfuck142个 139 131 119字节

++++++++++[>+++>+++++++>++++++++>+++++++++<<<<-]>>>--.<<++.>>.<-.<.>.<.>>+++++.<.<.>>.<<.>>.>---.<<<.>>>.<<<.>>-----.>.

在线尝试!

只需循环十次以用30、70、80和90填充单元格,然后后退和前进,并调整单元格值以打印出所需的字符。与标准的“ Hello world!”没有太大区别。


7
大声笑,我从未理解任何人如何“打高尔夫球”这些晦涩的语言。一开始就很难理解代码的功能(据说来自C ++ / Java背景)
mackycheese21

10
@ mackycheese21什么?C ++没教你爱指针操作吗?
candied_orange

12
Brainfuck可能是深奥的,但我肯定不会称其为晦涩的
不相关的String

3
@candied_orange C ++教会我讨厌指针操作,每当有人提到std :: :)时
就逃之run

1
@UnrelatedString模糊,不。钝,是的。
Rich

14

Brain-Flak,204字节

((((((((((((((((()()()){}()){}){}())){}{}))<([([][]){}()]{})(([][]){}[])>)<([][]
()())>)[[]]()())<([]()()())>)<((([]())[][]){}[][()])>)<([][()()])>[[]()])<([][((
)()){}])>)((()()())){}{})<((()()()()()){})>)

在线尝试!


4
积分扣除包装。
Rich

12

MarioLANG249个 221字节

+
+
+
+
+
+
+
+
+  ((+++++++++)))<
+>==============="
)++++++++)+++((-[!)--.)++.(.---------.).(.).)++.((.).).(.).++++.(.).(.(+++++++++.))
=================#================================================================.

在线尝试!



10

Excel公式, 59 57字节

以下内容应作为数组公式(Ctrl+ Shift+ Enter)输入:

=SUBSTITUTE(ADDRESS(1,{14,369,5,499,19,517,23,387},4),1,)

在将公式作为数组公式输入后,在公式栏中突出显示它并使用 F9以返回结果,例如:

之前:
Before formula evaluation

后:
Before formula evaluation

这个怎么运作

ADDRESS函数返回一个字符串,该字符串表示基于两个参数row和的引用col。第三个参数控制返回的参考类型,即绝对参考还是相对参考。例如,=ADDRESS(1,2,4)返回"B1"

我们可以提供一个数组ADDRESS,并用它作为一个数组公式以返回多个结果,例如=ADDRESS(1,{1,2,3},4)返回"A1","B1","C1"

因此,在我的回答中,提供给的数组ADDRESS只是与所需罗盘点相关的列号,例如Column 14是column N,Column 369是column NE

然而,我们在这里不是结束,因为所有返回的引用有包括行,例如N1NE1。因此,我们只是使用从所有引用中SUBSTITUTE删除1


1
=IF(1,"N NE E SE S SW W NW")有效吗?
恢复莫妮卡

3
@squid是的,的确会!但是,我正在寻找一种替代方案,不需要逐字引用该字符串。
i_saw_drones

这是如何运作的?
anatolyg

@anatolyg我添加了一个解释部分,希望它可以理解。
i_saw_drones


7

木炭,14字节

”{⊟“�_Zn↖⦄RüΦ≦

在线尝试!链接是代码的详细版本...这只是要打印的字符串,因为自动副词消除器负责字符串压缩。

由于Charcoal按字面意义打印可打印的ASCII码,因此打印未压缩的字符串需要19个字节。不幸的是,我能想到的最佳算法答案需要20个字节:

E⁸ΦSNWE›³﹪⁻﹪⁺⁵×⁶μχι⁸

在线尝试!使用数组格式的输出(将需要两个字节来连接空格中的元素)。通过注意到字符串的字母SNWE仅在当前外部索引等于或等于索引列表中相应元素的任一方向上相距1或等于1(模8)时才起作用4,0,6,2


7

brainfuck,117个字节

+++++[>++++++>+>+++>>++++>+++++<<<<<<-]>++[>++>++>+>++>++[<]>-]>>-.>.<.<.>>.<<.>>.>-.<<<.>>.>.<.>.>--.<<.>>.<<.<.>>>.

在线尝试!

此代码将首先在内存中创建字符“ EN SW”,然后来回移动以打印它们。该空格位于中间,因为它是最常打印的。N和S以及W和E永远不会一起出现,因此它们位于内存的相对侧。为了优化,某些最终的减量发生在输出阶段。


1
好,那是一个很酷的答案。猜猜你在这件事上击败了我。+1 -1 :-)
ElPedro

1
顺便说一句,顺便说一句,欢迎来到Code Golf网站。期待将来与您竞争competing
ElPedro

1
欢迎!考虑为该程序添加解释或指向在线解释器的链接。有关示例,请参见其他答案。仅短代码的答案往往会自动标记为低质量。
mbomb007

1
谢谢,我可以添加我的代码的解释。我还将尝试了解在线链接的工作方式。
海伦娜

1
@Helena对于该链接,您可以在我的答案中查看“在线尝试”链接。如果将代码粘贴并运行,则可以单击链接图标,并获得格式完美的代码高尔夫球答案,您只需在此处复制并粘贴即可。像魔术一样工作,并支持多种语言。非常值得一试。
ElPedro


5

果冻 16  15 字节

“¤œỵpq⁵’ṃ“NESW 

完整程序可打印文本

在线尝试!


16 ...

“¥Þ¡¦¢¬£æ‘ṃ“¡ɱ⁻»

一个尼拉度链接,它产生(小写)字符列表的列表。

在线尝试!


替代项15作为niladic链接,它产生(小写)字符(带有空格)的列表:“¡XÇŀqỵÑ’ṃ“¡⁴ṁ»


5

Commodore BASIC(TheC64Mini,C64,C128,VIC-20等)使用了28个标记化BASIC字节

 0 PRINT"N NE E SE S SW W NW

在Commodore BASIC中,您不需要在PRINTLET语句上加上引号,因为解释器会自动将其关闭,这样可以节省一个BASIC令牌。

或者,可以简单地使用直接模式,如下所示:

Commodore BASIC 23个PETSCII字符(+ RETURN执行)

?"N NE E SE S SW W NW

我不确定如何根据解释器计算此实例中使用的字节数?PRINT使用相同的字节数,并且内存中没有存储任何程序。


1
PRINT也可以替换?为,节省四个字节。
James

1
不,那不是真的。PRINT?使用相同数量的BASIC令牌。我没有计算PETSCII字符,因为它不能很好地说明解释器正在使用多少可用内存。
Shaun Bebbers

1
这些年来,我仍在学习有关准将的新知识。谢谢肖恩! c64-wiki.com/wiki/BASIC_token
James

这是我之前(针对C64)制作的-> pastebin.com/NMYzTC7k
Shaun Bebbers

4

Japt,16字节

返回小写字符串数组。压缩后的字符串为18个字节,但a用作分隔符,然后对其进行分割则更短。

`nÂà!Z°°nw`qa 

尝试 -页脚格式化输出。


4

死鱼〜,138字节

{{i}i}c{{d}}cs{i}c{d}ic{{d}}iisicsic{{d}}iisicisddddddc{d}ddddc{{d}}iisicisddddddc{{iiii}}sicisddddddciiiic{{d}d}icisddc{{d}d}ics{i}c{i}dc

在线尝试!

因此,用换行符小写输出比默认值(带空格的大写)更好。

这段代码是由我的优化器生成的,是用C ++编写的(感谢squid的另一个优化思想!):

#include <iostream>
#include <string>
#include <queue>
#include <vector>


int eval(const std::string& actions, int result)
{
    int mult = 1;

    for (int i = 0; i < (int)actions.length(); ++i)
    {
        switch (actions[i])
        {
        case 's':
            result *= result;
            if (result == 256)
                result = 0;
            break;

        case '{':
            mult *= 10;
            break;

        case '}':
            mult /= 10;
            break;

        case 'd':
            if (result > 256 && result - mult <= 256)
                result = (result - mult) % 256;
            else
                result -= mult;
            break;

        case 'i':
            if (result < 256 && result + mult >= 256)
                result = (result + mult) % 256;
            else
                result += mult;
            break;
        }
    }

    return result;
}

struct worse
{
    bool operator()(const std::string& a1, const std::string& a2)
    {
        return a1.length() > a2.length();
    }
};

std::string BestStr(int accumulator, int target)
{
    std::priority_queue<std::string, std::vector<std::string>, worse> actions;
    actions.push(std::string(""));
    while (true)
    {
        std::string a = actions.top();
        int new_acc = eval(a, accumulator);
        if (new_acc == target)
            return a + "c";

        actions.pop();

        int last_braces = 0;
        int i = a.length() - 1;
        while (i >= 0 && a[i] == '}' && last_braces < 2)
        {
            ++last_braces;
            --i;
        }
        bool is_last_i = (i >= 0 && a[i] == 'i');
        bool is_last_d = (i >= 0 && a[i] == 'd');
        bool may_add_braces = (i < 0 || a[i] == 's');
        bool may_add_c = (new_acc > 1 && new_acc < 30);

        if (may_add_c)
        {
            actions.push(a + "s");
        }
        if (may_add_braces)
        {
            actions.push(a + "{{}}");
            actions.push(a + "{}");
        }
        for (int braces_back = 0; braces_back <= last_braces; ++braces_back)
        {
            for (int c = 'd'; c <= 'i'; c += 'i' - 'd')
            {
                if ((!is_last_i || c == 'i') &&
                    (!is_last_d || c == 'd') ||
                    braces_back == 0)
                {
                    std::string new_actions = a;
                    new_actions.insert(new_actions.length() - braces_back, 1, (char)c);
                    actions.push(new_actions);
                }
            }
        }
    }
}

std::string DeadfishConvert(std::string s)
{
    std::string result;
    int accumulator = 0;

    for (int c: s)
    {
        result += BestStr(accumulator, c);
        accumulator = c;
    }
    return result;
}

int main()
{
    std::string s1 = DeadfishConvert("N NE E SE S SW W NW");
    std::cout << s1 << '\n';
    std::cout << s1.length() << '\n' << '\n';
    std::string s2 = DeadfishConvert("n ne e se s sw w nw");
    std::cout << s2 << '\n';
    std::cout << s2.length() << '\n' << '\n';
    std::string s3 = DeadfishConvert("N\nNE\nE\nSE\nS\nSW\nW\nNW");
    std::cout << s3 << '\n';
    std::cout << s3.length() << '\n' << '\n';
    std::string s4 = DeadfishConvert("n\nne\ne\nse\ns\nsw\nw\nnw");
    std::cout << s4 << '\n';
    std::cout << s4.length() << '\n' << '\n';
}


4

批处理文件,19字节

这个问题从来没有说过您必须输出,N NE E SE S SW W NW而没有别的什么,也没有说过这样做后由于错误而无法退出,因此此代码只会引发错误,而不会因此而退出。

N NE E SE S SW W NW

输出量

>N NE E SE S SW W NW
'N' is not recognized as an internal or external command,
operable program or batch file.

批处理文件,25个字节

N NE E SE S SW W NW输出没有错误或崩溃。

@echo N NE E SE S SW W NW

您可以节省一个字节,用cd代替引号,例如'N NE E SE S SW W NW'-您将得到以下内容: N NE E SE S SW W NW - command not found
Dewi Morgan

4

Python2,59个字节

''.join(' SEWN'[0xe0619042210504>>i*3&7]for i in range(19))

幻数是连接到字符串的三位索引,顺序相反,因此我们可以从LSB开始迭代。


我花了一段时间尝试缩小幻数,但由于需要对空间进行编码,因此通过乘以重复字符串以允许额外的索引无法解决-最好在查找中为重叠索引添加更多字符字符串,而不是从魔术数字中删除的数字(包括中间两个不幸的无关位):

''.join('WN S ES W xxE '[0x423659711>>i*2&15]for i in range(19))

当您使它复杂时,为什么使它简单?:-)
GB

4

K(ngn / k)23 22字节

-1个字节感谢ngn!

"WNES"@5\7108085518230

在线尝试!

J34 30字节

echo(#:3510)<;.1'NNEESESSWWNW'

在线尝试!


Galen,因为J回显文字会短一些。我很乐意看到那个节奏...我没办法做到
约拿(Jonah)

1
是的,回显将是4 + 19字节。我没有更好的主意。
Galen Ivanov

1
对于k:如果我们交换" "<-> "W"(以5为底的0<-> 4),该空格将在末尾,并且我们可以将其删除,因为越界字符串索引仍然会产生一个空格:"WNES"@5\7108085518230
ngn

@ngn谢谢!
Galen Ivanov

1
@GalenIvanov也同样适用于高性能数据库:) arthur将k设计为kdb +
ngn


3

Brachylog,19个字节

"NNEESESSWWNW"ḍ₄ḍᵐc

在线尝试!

输出为列表。ḍ₄ḍᵐc在写出七个空格并使整个谓词为字符串文字时节省了两个字节,因此至少将它与PHP联系在一起...

"NNEESESSWWNW"         The string "NNEESESSWWNW"
              ḍ₄       split into quarters
                 ᵐ     with each quarter
                ḍ      split in half
                  c    and concatenated
                       is the output.

我尝试过使用3⟦{;"NESW"↺₍h₂a₀ᶠ}ᵐc,但是它无法正确显示SE或NW,反正又长了一个字节。


3

空格,151字节

[S S S T    T   N
_Push_3_W][S S T    T   T   S N
_Push_-6_N][S S T   T   T   S T S S N
_Push_-52_space][S S S T    T   N
_Push_3_W][S T  S S T   N
_Copy_0-based_1st_(space)][S S S T  T   N
_Push_3_W][S S T    T   N
_Push_-1_S][S T S S T   S N
_Copy_0-based_2nd_(space)][S S T    T   N
_Push_-1_S][S T S S T   N
_Copy_0-based_1st_(space)][S S T    T   T   T   T   N
_Push_-15_E][S S T  T   N
_Push_-1_S][S T S S T   S N
_Copy_0-based_2nd_(space)][S T  S S T   S N
_Copy_0-based_2nd_(E)][S T  S S T   N
_Copy_0-based_1st_(space)][S T  S S T   N
_Copy_0-based_1st_(E)][S S T    T   T   S N
_Push_-6_N][S T S S T   S N
_Copy_0-based_2nd_(space)][S S T    T   T   S N
_Push_-6_N][N
S S N
_Create_Label_LOOP][S S S T S T S T S S N
_Push_84][T S S S _Add][T   N
S S _Print_as_character][N
S N
N
_Jump_to_Label_LOOP]

字母S(空格),T(制表符)和N(换行符)仅作为突出显示而添加。
[..._some_action]仅作为说明添加。

在线尝试(仅使用空格,制表符和换行符)。

说明:

  1. 将字符“ WN W WS S ES E EN N”的unicode值减去常数84推入堆栈(请注意,该字符串以相反的方向推入)。另外,我使用一些先前推送的值的副本来尽可能地保存字节。
  2. 然后开始一个无限循环,该循环将执行以下操作:
    1. 将常数84添加到当前的unicode值
    2. 将其作为字符打印到STDOUT

该常量84该Java程序生成,我为在Whitespace中回答的另一个挑战编写了该常量。


3

MathGolf20 17 字节

ÿnesw▒∙╫m+mÉîÄ╪^─

-3个字节,感谢@maxb

在线尝试。

说明:

ÿnesw      # Push 4-char string "nesw"
           #  STACK: "nesw"
          # Split to a list of characters
           #  STACK: ["n","e","s","w"]
          # Triplicate it
           #  STACK: ["n","e","s","w"],["n","e","s","w"],["n","e","s","w"]
          # Rotate the top one once towards the left
           #  STACK: ["n","e","s","w"],["n","e","s","w"],["e","s","w","n"]
 m+        # Append the top two together
           #  STACK: ["n","e","s","w"],["en","se","ws","nw"]
   m       # Map the strings in the top list to:
    ÉîÄ╪   #  Rotate the string the 1-based index amount of times towards the right
           #   STACK: ["n","e","s","w"],["ne","se","sw","nw"]
^          # Zip; creating pairs with the top two lists
           #  STACK: [["n","ne"],["e","se"],["s","sw"],["w","nw"]]
          # Flatten this list
           #  STACK: ["n","ne","e","se","s","sw","w","nw"]
           # (after which the entire stack is output implicitly as result)

1
17个字节。这是一个有趣的挑战。我以前尝试过,但最终还是在您做过的地方。我认为您最多可以再增加1个字节,但是我找不到更短的方法。
maxb

@maxb不错的方法。我必须承认,块大小X的那些代码(ÉÄ在这种情况下)仍然混淆我有点有时..有时候我不知道当我这样做,或者没有使用这些代码块。m+例如,您不使用一个。但是您Ä是一个大小为1的代码块。我mÅî╪还未尝试查看发生了什么,这就是为什么我现在明白为什么Ä要开始一个大小为1的代码块的原因。:))感谢-3个字节。我看到仍有很多东西需要学习。
凯文·克鲁伊森

1
很好的解释!我尝试做一个解决方案而不将其转换为chars列表,但是zip命令有点奇怪。对于代码块,请将其视为替代,而不是{}mÅî╪创建映射,但映射内部没有for循环。如果您编写m{î{╪}},则可能更容易看到代码是“映射到:循环<index>次,并在每个循环中旋转字符串”。之所以m+没有一个,是因为某些命令具有隐式的1字节块(映射,过滤,缩小等),而î不是要与块结合使用的命令。
maxb

1
@maxb我确实知道代码块是的较短变体{...},但是我有点忘记integer{了for循环。:)现在îÄ╪更有意义了。感谢您的解释!
凯文·克鲁伊森

2

的CSS42 39字节

(感谢修订版的石头蜘蛛)

body:after{content:"N NE E SE S SW W NW"


1
-3个字节:body:after{content:"N NE E SE S SW W NW"
石蜘蛛

哦,我忘了,这也是有效的ofc,已更新:)!
roberrrt-s

2

种子,6014字节

27 32429737401852232227804295321578416370544555457622262891879921280324727410131817586348135470079420921373938348260737299348550007805068404867624897650263347568409592608258945989033792510474363164709158118555665232935403908551415888090695760298337219819413274977014408722140235669339108001709528995376914900494019798521214727367535169036319615676199584661126257462974800782884967804763256678000063025237472650538076831876942979826335539886276642624472204985016283691316313249488093825552581263195700506490263014623798470563718844847334940964632636436478404543496272112184140337568637349767918641524452384959486975049813859244670160569884744538279036643294867674161431756929550170395739925307134312406291063668809195567313928307910934660574895433141956111513050736041440669472422865481546405020220238818265794921314653725749392385549924210837964649297239381603259476675148489582680939048820717739905271461370132524025785160026801625672272913416389786086946626728842588663673416395169524016926695769334183833366462685756958054189820999370092892855665559717806826530952610964256124463840218293029538229042911551526509745973128558291005365222643503139067010483637086697955919587162384655443959408291567894061028044826636171014388153130769792397282335858985323269310727311039012381122390183102126191168963870116881629339035600546009305431793687183913979054151312200573069395058914262857368132993952655571167118263728070696377852599343989848263167312887211748226689125561718255196655446099711296568221690530717651328503948183228932786503716890383195810396161663632504174142420921735055441162618914957825032056019218584287089599270312541933094119409995775035365862244691419255488688879630142415739738796957474249592086989231999568273454247198389863139439897248192949030226324637037937607004428557202644332945222019553599908855943840883606735602486216245714280716148378430738983808375466562604692991701163078094015860708365913183037140180020776525026891135163345427911749533164462233906885068864798951466382247930357444595606617682531499045805835102155190109668901179666311163071611393282924908189215675892953256826649762594463293867383921972181952997833560371571545190945543033351108064265894854803319008655145213765667074789305055723258530694850418765677462165413557272747961130459219342146615095862014137406489375157766959799291089215740196734079295172946350338663239451562589633216908805028629767462044463310475859283605554743731396818983359527612902567406307270838160926586311672252276690909354125055468912844343806046309796590149977323343332039095076680537362333773750051043281967620781236684580688649899599894791764969639275247700776637892615729757899608628514791667795106390376246890330575517824338764219021396958188958235055290896924249770944905659304681507478975095888248103169710912376599445302527257479613158446721050489233911736089191439017996962182413511012900366501119556105789078275149705515012300827868862038071066912823449506913958912235923323638505757204526506327010926007595704417253684932596231606733027284263178479840785607928320603259662026791082244015829365605451084366715394628351636563955621161378688550003390556445245074739462307110100863024184316465734324401688465928827408449165190271528329602702373730346394803239394173490819727873116531045433457650881080122796159241596543253982402471104065237941729677594379317274541529006952959000152687275974001138315010176843925599438278290218390644740919129323109582279220437886915496736885058271413958305953151184342725824729076581370881383360210631877985352671536000503948280559301633936877162466145026758809907939645467704805892486147550057845773849575278620555906080753862688722846292689494961297512113753414009189522365247542490200336579292488067953461299023326925661887077747288500270026888774635820948696015812357241781814592351848858954139716506111479475207696790949277211077720834891880913260866501916732427370806066035548982017315826213049658915419681842381914237502216614528174237875875738156132703973666564945026254499265910704148825037630761619650949635972980035630316257135212349181639940504547722767898302879234673272154028964478458469466250102554612059368293497511404163963705442187242769706586819405113285219700159125119338601931670779192478917206878107091618448093140705173062420040261126935373689918208815797991761563304607704283868972915636425613833785564679990574095368828308776724486415005128506687942819070129022911666887363253202695416103545769073021185132010920185208632024811337544715055406031297413168802089421761798020616230024290524096396092608042069087607272534874457093977610919233750725135220581682913316085638068663247820037223692942067994551786014033707387642820855601334002540339334606906772532939337779748305357112540312103757754695577077583846897693527091162962000082213332051059005644562753372638247584982354478224403477604356150912451128591138652721098074872513196253790561736352841309810909110001754673250730698454675988798465247376421075019414107337634079281061629221783859449063069175434073835673063716565555614782886016441814199915418848976070834414782427725187820926042778984081922550398210353288229598805397201850487997254871012213762289412828417039945896819359898337616122446201299182152276549340911589671291124887672310931868023491872685227548726494469798568145715500153324646857181224645073236602344526749192704938665584870007079941922775292601106345725659322322536675461008337648982039319953181733660980694781559207671567197161027796266390879206526082137700937056380629087949633487181507979286568656291044492869916694352395542638882544967807857391058161838343109606346401310155771709714142586733985703451391374159045025205718989407293651441039802247981386993858491342422355232055341447145969376687615001834650283116652856369804298047720786536278306210551862061566639283704928517998916884505819581251906693306116531467413995747910736025576089721150597919824878333808115757216261812226145636769545796913912159437533454858286778214791559458862216426856243544801486923659355580455048265633089421966932180992

生成以下befunge程序:

"WN W WS S ES E EN N">:#,_@

2

霍多尔,177字节

hodor.hod("HoOodoOorhodor  HoOodoOorhodor HooodorrHodor  HooodorrHodor  HODOR?!? HooodorrHodor  HODOR?!?  HODOR?!? Hooodorrhodor  Hooodorrhodor  HoOodoOorhodor Hooodorrhodor ");

在线尝试!


2

汇编(x86,Linux),68字节

$ od -x a
0000000 457f 464c 0001 0000 0000 0000 0000 0500
0000020 0002 0003 001b 0500 001b 0500 0004 0000
0000040 13b2 31b9 0000 cd05 2580 0020 0001 cd40
0000060 4e80 4e20 2045 2045 4553 5320 5320 2057
0000100 2057 574e
0000104
$ ./a
N NE E SE S SW W NW$

资源:

BITS 32
org 0x05000000
db 127,"ELF"
dd 1,0
dd $$
dw 2,3
dd 0x0500001B,0x0500001B
dd 4
mov dl,19
mov ecx,m
int 128
db 37
dw 32,1
inc eax
int 0x80
m db 'N NE E SE S SW W NW'

大部分代码是从最短ELF中获取的“ Hello world \ n”代码?



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.