这是我的枕头


66

...你能帮我永生吗?

在此处输入图片说明

几年前,我已经有了这个枕头,显然是时候摆脱它了。您能不能编写一个函数或程序,我可以随身携带,并在需要时可以用来重现此枕头。

它必须没有输入参数。

输出应该看起来完全像这样(尾随换行和空格都可以)。

/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////

这是代码高尔夫,所以最短的代码以字节为单位获胜!


排行榜


7
我有点失望,图案没有再复杂一些,无法代表枕头的不同线条粗细。
Sparr

4
我尝试了@Sparr,但是我没有设法仅使用ASCII字符使其看起来不错。认为这已经足够接近了:)
Stewie Griffin's

3
我会刚刚添加空格
Sparr

1
'明显地':P
Pysis

7
现在,您可以购买一个空白的枕头,并在上面打印获奖者摘要。
coredump

Answers:


24

05AB1E18 15字节

码:

„/\5×{4Å6×»6F=R

说明:

„/\               # Push the string "/\"
   5×             # Repeat 5 times: "/\/\/\/\/\"
     {            # Sort, resulting in: "/////\\\\\"
      4Å6         # Create a list of 6's with length 4: [6, 6, 6, 6]
         ×        # Vectorized string multiplication
          »       # Join by newlines
           6F     # Do the following six times..
             =    #   Print with a newline without popping
              R   #   Reverse the string

使用CP-1252编码。在线尝试!


2
哇...两个不同的镜头,相同的字节数...
Oliver Ni

30

///,116字节

/a/\\\\\\\\\\\\\\\///b/\\\\\\\\\\\\\\\\//A/aaaaa//B/bbbbb//C/ABABABABABAB
//D/BABABABABABA
/CCCCDDDDCCCCDDDDCCCCDDDD

在线尝试!

编辑:在\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\实际上是一个 /和\分别。

编辑:-3因为我想删除i。我认为这不能再打了。


15

Python 2,49字节

b,a='\/';exec("print(a*5+b*5)*6;"*4+"a,b=b,a;")*6

感谢Mitch Schwartz提供这种节省字节数的简洁方法。这个想法是打印四行('\\'*5+'/'*5)*6,交换正斜杠和反斜杠的角色,然后整个过程执行6次。这两个字符存储在a和中b,并交换为a,b=b,a。通过生成以下代码字符串,然后执行以下命令,双重循环是双重的exec

print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;a,b=b,a;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;a,b=b,a;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;a,b=b,a;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;a,b=b,a;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;a,b=b,a;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;print(a*5+b*5)*6;a,b=b,a;

50个字节:

s='/'*5+'\\'*5;exec("print s*6;"*4+"s=s[::-1];")*6

制作线串,打印四次,然后反转,然后进行六次。为此,请生成以下代码,然后执行以下代码:

print s*6;print s*6;print s*6;print s*6;s=s[::-1];print s*6;print s*6;print s*6;print s*6;s=s[::-1];print s*6;print s*6;print s*6;print s*6;s=s[::-1];print s*6;print s*6;print s*6;print s*6;s=s[::-1];print s*6;print s*6;print s*6;print s*6;s=s[::-1];print s*6;print s*6;print s*6;print s*6;s=s[::-1]

这是我打高尔夫球的一些迭代:

for c in([1]*4+[-1]*4)*3:print('/'*5+'\\'*5)[::c]*6

for i in range(24):print('/\\'*5+'\/'*5)[i/4%2::2]*6

for c in range(24):print('\\'*5+'/'*5)[::(c&4)/2-1]*6

for i in range(24):print('/'*5+'\\'*5)[::1-i/4%2*2]*6

for c in([1]*4+[0]*4)*3:print('\/'*5+'/\\'*5)[c::2]*6

for c in([1]*4+[0]*4)*3:print('\/'[c]*5+'/\\'[c]*5)*6

for c in(['/\\']*4+['\/']*4)*3:print(c[0]*5+c[1]*5)*6

for c in([5]*4+[-5]*4)*3:print('/'*c+'\\'*5+'/'*-c)*6

print((('/'*5+'\\'*5)*6+'\n')*4+(('\\'*5+'/'*5)*6+'\n')*4)*3

for x in(['/'*5+'\\'*5]*4+['\\'*5+'/'*5]*4)*3:print x*6

a='/'*5;b='\\'*5
for x in([a+b]*4+[b+a]*4)*3:print x*6

s='/'*5+'\\'*5
for x in([s]*4+[s[::-1]]*4)*3:print x*6

s=('/'*5+'\\'*5)*9
exec("print s[:60];"*4+"s=s[5:];")*6

a='/'*5;b='\\'*5
for i in range(24):print[a+b,b+a][i/4%2]*6

12

05AB1E,15字节

„/\5×{R6×6FR4F=

在线尝试!

说明:

„/\             # Push "/\"
   5×           # Repeat string five times: "/\/\/\/\/\"
     {          # Sort: "/////\\\\\"
      R         # Reverse: "\\\\\/////
       6×       # Repeat string six times
         6F     # Repeat the following six times:
           R    #   Reverse
            4F  #   Repeat the following four times:
              = #     Print without popping

使用CP-1252编码。


8

JavaScript(ES6),68 60 58字节

递归函数。chocochaos答案启发了一些优化。

f=(n=1440)=>n--?'/\\'[n/240&1^n/5&1]+(n%60?'':`
`)+f(n):''

演示版


我认为您可以省略第一个&1字节并保存两个字节
Henrik Christensen

@HenrikChristensen那只适用于n < 480。为此n >= 480,我们需要括号:(n/240^n/5)&1
Arnauld

8

泡泡糖,30个字节

00000000: d307 8118 1020 9dc5 3544 3523 f8a4 b386  ..... ..5D5#....
00000010: aae6 e113 cfa3 f13c 1acf a3f1 0c00       .......<......

强制性泡泡糖答案。


哦,天哪,这门语言太棒了!
Pedro A

7

Haskell,77 70 57字节

a%b=(<*[1..a]).([1..b]>>)
unlines$4%3$5%6<$>["/\\","\\/"]

厌烦concats和replicates而不是玩罪恶。旧的是:

unlines[["\\/"!!(ceiling$sin(pi*x/5)*sin(pi*y/4))|x<-[0.5..59]]|y<-[0.5..23]]

6

Brainfuck,140个字节

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

:-D


3
哦,看!头脑解决方案比Java解决方案短八个字节。是时候让Java编码人员切换到
头脑混乱

Java的反击
cliffroot

6

Python 2,86 80 76 74 73字节

for z in range(24):a=('/'*5+'\\'*5)*24;print((a+a[::-1])*3)[z*60:z*60+60]

可能还能再打一些高尔夫球,但这是一个开始。

编辑

通过删除一些不需要的括号来节省6

通过使用单个字符串再反转4个

谢谢@Adnan。昨晚深夜,还没有完全醒来:p

-1,方法是将*24移至变量,而不是使用两次


4
我相信那*6*4是一样的*24吗?:p
Adnan

6

Brainfuck,149字节

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

最好的口译员EVAR!

这将使用6个单元(无包装,无模)。他们来了:

0A 00 2F 00 5C 00

所述00细胞用于环路计数器。在这里,计数器将填充初始值:

0A 06 2F 04 5C 03

最左边的计数器用于最里面的循环(是的,我使用深度为3的嵌套循环)。请注意,第四个单元格(04计数器)使用了两次,一次用于/////\\\\\...,一次\\\\\/////...每次使用。

0A2F5C是字符\n/并且\,分别。


6

Python 2.7 66-> 56-> 55个字节

a="/"*5+"\\"*5;b=a[::-1];c=6*a+"\n";d=6*b+"\n";e=4*c+4*d;print e*3

打高尔夫球的新手

a="/"*5+"\\"*5;print(4*(6*a+"\n")+4*(6*a[::-1]+"\n"))*3

感谢Stewie Griffin

忘了一个愚蠢的空格;)


2
欢迎来到PPCG!好的第一个答案:)您可以跳过一些中间变量吗?至少de,也许更多。我尚未对此进行测试,但应该接近:print(4*c+4*(6*b+"\n"))*3。它少了5个字节。
Stewie Griffin's

3
55个字节:a="/"*5+"\\"*5;print(4*(6*a+"\n")+4*(6*a[::-1]+"\n"))*3
Stewie Griffin

6

Brainfuck,179个字节

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

我知道这不是线程中的最高分,但我想尝试一下,尝试一下。

编辑: 我在复制粘贴时一定出错了。这个版本应该工作


欢迎光临本站!
DJMcMayhem

对我不起作用。浏览器挂断了该解释器,并且个人显示一个非预期的5行输出://///\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ 四次,然后是无限\
aluriak

是的,它有效:)
aluriak



5

MATL18 16字节

'\/'6:&+thK5&Y")

在线尝试!

说明

'\/'   % Push this string
6:     % Push array [1 2 3 4 5 6]
&+     % 6×6 matrix with all pair-wise additions from that array
th     % Concatenate horizontally with itself. Gives a 6×12 matrix
K      % Push 4
5      % Push 5
&Y"    % Repeat each entry of the matrix 4 times vertically and 5 times horizontally
       % This gives a 24×60 matrix
)      % Index (modularly) into the string. This produces the desired 24×60 char array

5

Pyth,22个字节

V6V4V12p*5?%+bN2\\\/)k

在这里尝试。

说明:

V6                     Loop 6 times, with N from 0 to 5:
  V4                   Loop 4 times, with H from 0 to 3:
    V12                Loop 12 times, with b from 0 to 11:
      p                Print without newline
        *              The repetition
          5            5 times of
          ?            if
            %          the remainder
              + b N    when the sum of b and N
              2        is divided by 2
          \\           then the "\" character
          \/           else the "/" character
    )                  End
                       (implicitly print with newline)
  k                    k (empty string)
                       (implicit end)
                       (implicit end)

抱歉,如果解释有点难以理解,但是有点复杂。


5

V22 21字节

编辑赢了一个字节,谢谢@DjMcMayhem:

5á\5á/05ä$4Ä5x$p4Ä3ä}

更改为:

  • Y4P-> 使用V复制行而不是Vim内置命令(这将在段落末尾添加一个空行)
  • 3äG-> 3ä}复制段落而不是整个缓冲区(以避免上一次更改生成空白行)

原始帖子

5á\5á/05ä$Y4P5x$p4Ä3äG

在线尝试

分解成这样:

5á\                    Write 5 \
   5á/                 Write 5 / after
      0                Go to the beginning of the line
       5ä$             Copy the text to the end of the line and repeat it 5 times
          Y4P          Copy the line and create 4 new copies
             5x$p      Delete the 5 first characters and put them at the end of the line
                 4Ä    Duplicate this line
                   3äG Duplicate the whole text

看到其他人使用V很酷!直到最近,只有我一个。如果你需要它的帮助,请随时来ping我在十九字节
DJMcMayhem

@DrMcMoylex是的,使用您的语言似乎很有趣:-)我在此问题上遇到了问题:最初我想使用5á\5á/05ä$5Ä5x$p4Ä3äGie替换为Y4P但是由于我不理解它会复制一个额外的空行...如果可以启发我这一点会很好。另外,如果我找到一些空闲时间,我会很乐意为该语言做出贡献(尤其是问题4
statox

啊,是的,这困扰了我很多次。这是一个已知问题。问题是,Ä是的代名词dd,没有Y。通常这不是问题,但是如果缓冲区只有一行或您位于最后一行,则会引起一些问题。
DJMcMayhem

实际上,我只是意识到,如果您替换为该方法,则该方法仍然有效3äG3ä}因为它不会拖拽最后一个换行符。v.tryitonline.net/...
DJMcMayhem

好的,我想我知道为什么现在不起作用。也是赢得1个字节的好方法,谢谢!
statox


4

其实 21个位元组

"/\"5*SR6*;4α@R4α+3αi

在线尝试!

来自Adnan的-1个字节

说明:

"/\"5*SR6*;4α@R4α+3αi
"/\"5*                 "/\" repeated 5 times
      SR               sort and reverse (result: "\\\\\/////")
        6*             repeat string 6 times (forms one row)
          ;4α          copy and push a list containing 4 copies
             @R4α+     push a list containing 4 copies of the reversed string, append to previous list (now we have one row of diamonds)
                  3α   repeat pattern vertically 2 more times
                    i  flatten and implicitly print

您可以做类似"/\"5*S创建斜线字符串的操作吗?
阿德南

@Adnan好主意!
Mego

4

Ruby,46个字节

创建下面的字符串(70个字符,一组超过需要)然后采样字符之间交替0..595..64从它。

/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\

代码和输出

24.times{|i|puts ((?/*5+?\\*5)*7)[i/4%2*5,60]}

/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////

有趣的错误(用7代替5)

24.times{|i|puts ((?/*5+?\\*5)*7)[i/4%2*7,60]}

/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\
\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\

4

APL,30个字节

A←240⍴'/////\\\\\'⋄24 60⍴A,⊖A

我对APL还是很陌生(我正在使用APLX,但这应该适用于APL的大多数实现),所以这是一个非常简单的解决方案。

说明:

A ← 240 ⍴ '/////\\\\\' ⍝ set A to be a 240 character vector populated with '/////\\\\\'
⋄                      ⍝ statement separator
24 60 ⍴ A,⊖A           ⍝ populate a 24 by 60 character matrix with the concatenation 
                          of A and the reverse of A (⊖A)

4

C,66 61字节

感谢orlp,节省了5个字节。

逐字直接打印。每行61个字符,最后是换行符(ASCII 10),其他字符在/47和\92 之间交替。

i;f(){for(i=1463;i;)putchar(i--%61?i%61/5+i/244&1?92:47:10);‌​}

//call like this
main(){f();}

61个字节:i;f(){for(i=1463;i;)putchar(i--%61?i%61/5+i/244&1?92:47:10);}
orlp

@orlp谢谢,我知道必须有更好的方法,i--但是我没有时间去寻找它。
水平河圣

3

Python 2,63个字节

a='\n'.join([('/'*5+'\\'*5)*6]*4);print'\n'.join([a,a[::-1]]*3)

对于Python 3,请执行以下操作(65个字节):

a='\n'.join([('/'*5+'\\'*5)*6]*4);print('\n'.join([a,a[::-1]]*3))

1
这使用与Jelly回答相同的方法。
暴民埃里克

首先是比我更有效的方法
ElPedro '16

@ElPedro基本上,我只是做了一些字符串/数组操作。诀窍是我准备了一个更大的字符串://///\\\\\/////...四次,由换行符分隔
Outgolfer的Erik


3

J,31 28 19字节

4#_60]`|.\5#72$'/\'

用法

   4#_60]`|.\5#72$'/\'
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////

3

八度,50 48字节

匿名函数:

@()repmat([A=repmat(47,4,5) B=A*2-2;B A ''],3,6)

您可以在此处尝试在线。只需运行上面的命令,然后使用即可运行该函数ans()

本质上,这将创建一个值为47的数组,该数组的值为4高5宽。然后,它创建具有相同大小的值92的第二个数组。

这两个数组串联到的棋盘格中[A B;B A]。该''级联以及强制转换为字符串。

最终,将整个阵列向下复制3次,对面复制6次以形成最终大小。


  • 保存了2个字节,谢谢@StewieGriffin

无需匿名功能;节省3个字节。
Tasos Papastylianou

@TasosPapastylianou那里,否则它将ans=在枕头前打印。将其包含在函数中可解决此问题,因为它有望将答案返回到变量而不是显示它。
汤姆·卡彭特

那只是语义。我的意思是,如果您要成为书呆子,我会更担心出现的三行警告消息,而不是:p另外,通常的规则还规定,它必须是直接终端命令的输出,还是可调用的功能句柄。意味着您应该将匿名函数分配给一个句柄(或添加另外5个字节以说明必须pring ans())。毫无意义,因为运行时ans() 仍会打印ans
Tasos Papastylianou

@TasosPapastylianou ans()是可调用的函数句柄,因此您无需将其分配给带有的东西,例如a=@...,因为它是隐式分配给ans的。此外,ans=除非您通过不对返回值做任何事情并且不添加来明确要求,否则它在运行时不会打印;。如果这样做disp(ans()),将只输出准确的输出(否ans=)。但是,是的,警告很烦人,但是以前没有发生过,因此它不是特定于语言的,而是特定于解释器的。
汤姆·卡彭特

好的,我们同意不同意。我的看法是,如果disp(ans())在获得输出之前依赖,那么您需要在答案中添加12个字节。我自己的看法是,这只是八度表示结果的方式,这很好。
Tasos Papastylianou

3

PHP,73 69字节

for($s='/\\';$i<1440;$i++)echo$i%60<1?'
':'',$s[($i/5+($i/240|0))%2];

演示版

http://ideone.com/z7N1Md


1
69个字节:(用实际的换行符for($s='/\\';$i<1440;$i++)echo$i%60<1?'\n':'',$s[($i/5+($i/240|0))%2];替换\n)。echo不是函数,因此不需要parenthesys。另外,echo可以接收多个值,以逗号分隔。这确实消除了对这些括号的需要。然后,在您$s[...]的内部,最外面的计算也不需要parenthesys,因为它包含在with中[]。使用$s[($i/5+($i/240|0))%2]具有相同的效果并且更短。
Ismael Miguel

谢谢更新!我什至不知道echo接受多个参数^ _ ^
chocochaos

echoprint接受多个参数。但是print在循环的增量,条件或赋值上使用时,需要带多个参数的parenthesys。
Ismael Miguel

可以<1通过echo$i%60?'':' ',在三元数中切换表达式,换行作为表达式3来消除这种情况。
Progrock '16

3

Java 7,120个字节

String c(){String r="";for(int i=0;i<1440;r+=(i%60<1?"\n":"")+(i/60%8<4?i%10<5?"/":"\\":i%10<5?"\\":"/"),i++);return r;}

将所有内容推入一个循环。击败Brainfuck,任务完成。

在线查看:https//ideone.com/pZjma3


3

Vim,44 27字节

编辑 @DrMcMoylex赢得了很多字节:

5i\<esc>5a/<esc>0y$5PY4P5x$pY3PyGPP

原始答案:

我不确定这是否符合本网站的规定,但我认为尝试该做法很有趣:

i\<esc>59.:s;\v(.{5})\1;\1/////;g<CR>Y4P5x$pY3PyGPP

可以这样分解:

i\<esc>                       Insert a \
59.                           Repeat 59 time the insertion
:s;\v(.{5})\1;\1/////;g<CR>   Match 5 characters followed by the same 5 characters
                              And replace them by these 5 characters followed by 5 /
Y4P                           Copy the line and repeat it 4 times
5x$p                          On the current line delete 5 characters and put them 
                              at the end of the line
Y3P                           Copy the line and repeat it 3 times
yG                            Copy all the lines
PP                            Repeat them 2 times

哦,statox,欢迎光临本站!这完全符合规则。我主要在vim打高尔夫球。请注意,您可以5i/<esc>5a\<esc>0y$5P从一开始就节省9个字节。
DJMcMayhem

嘿DrMcMoylex(新名字?:-))很高兴在这里见到您,我的回答也很合适。也感谢您的提示,我将编辑我的答案
statox

2
哈哈,是的,由于这个挑战,我暂时更改了名字,哈哈。我将在30天后将其更改
DJMcMayhem

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.