Answers:
s="------x------\n| | x | |\n| |--x"
print s+s[-2::-1]
打印字符串的前半部分,然后反向显示。这很无聊,但是效率很高。我尝试提取出out的重复部分s
,尤其是的重复部分-
,但没有找到更短的部分。
Python 2,59个字节
for n in 6,0,2,0,6:x='-'*n+' | |'[n:];print x[::-1]+'x'+x
使用Jo King的构造。
Python 2,62个字节
b='| '*2
for r in'-'*6,b,'| |--',b,'-'*6:print r+'x'+r[::-1]
打印每行的前半部分,然后打印'x'
,然后反转前半部分。
s='-'*6;p='| |';w=s+'x'+s;a=p+' x '+p;print(w,a,p+w[4:9]+p,a,w,sep='\n')
大概是高尔夫-我以前从未真正尝试过kolmogorov复杂性挑战。
在Python 2中,我可以将其增加到76个字节
s='-'*6;p='| |';w=s+'x'+s;a=p+' x '+p
for i in w,a,p+w[4:9]+p,a,w:print i
1 WIDTH 13:PRINT"------x------| | x | || |--x--| || | x | |------x------
滥用WIDTH指令为我节省了大约20个字节。
"
-x|"•L®y[Â-Γ•5вèJ.º.∊
25 24字节替代:
… -|•B°”Ñ•3вèJ3ä'x«».º.∊
说明:
"\n -x|" # Push string "\n -x|"
•L®y[Â-Γ• # Push compressed number 5960566858660563
5в # Converted to Base-5 as list:
# [2,2,2,2,2,2,3,0,4,1,1,4,1,1,3,0,4,1,1,4,2,2,3]
è # Index each digit into the string
J # And join the list together
# "\n -x|" and [2,2,2,2,2,2,3,0,4,1,1,4,1,1,3,0,4,1,1,4,2,2,3]
# → "------x\n| | x\n| |--x"
.º # Intersect mirror everything horizontally
.∊ # Intersect mirror everything vertically (and output implicitly)
… -| # Push string " -|"
•B°”Ñ• # Push compressed integer 193812448
3в # Converted to Base-3 as list: [1,1,1,1,1,1,2,0,0,2,0,0,2,0,0,2,1,1]
è # Index each digit into the string
J # And join the list together
# " -|" and [1,1,1,1,1,1,2,0,0,2,0,0,2,0,0,2,1,1]
# → "------| | | |--"
3ä # Split the string into three parts: ["------","| | ","| |--"]
'x« '# Append an "x" to each: ["------x","| | x","| |--x"]
» # Join by newlines: "------x\n| | x\n| |--x"
.º # Intersect mirror everything horizontally
.∊ # Intersect mirror everything vertically (and output implicitly)
请参阅我的05AB1E技巧(如何压缩大整数部分)以了解为什么•L®y[Â-Γ•
是5960566858660563
和•B°”Ñ•
是193812448
。
由于@MagicOctopusUrn的ASCII艺术发生器为•L®y[Â-Γ•5BžLR"\n -x|"‡
和•B°”Ñ•3BžLR" -|"‡
,之后音译已经通过交换堆栈上的数量和串还golfed,使用в
代替B
,和索引与琴弦è
。
13é-Äï5I |<esc>ÄÙ4l5r-Îd^ãrx
十六进制转储:
00000000: 3133 e92d c4ef 3549 2020 7c1b c4d9 346c 13.-..5I |...4l
00000010: 3572 2dce 645e e372 78 5r-.d^.rx
这是我的过程:
13é-Äï5I |<esc>3<<ÄÙ4l5r-Gã<C-v>ërx
13é-Äï5I |<esc>3<<ÄÙ4l5r-Î7|rx
13é-Äï5I |<esc>3<<ÄÙ4l5r-Îãrx
13é-Äï5I |<esc>ÄÙ4l5r-Îd^ãrx
备用版本:
5I |<esc>5ÄM4l5r-HÒ-G.Îxxãrx
十六进制转储:
00000000: 3549 2020 7c1b 35c4 4d34 6c35 722d 48d2 5I |.5.M4l5r-H.
00000010: 2d47 2ece 7878 e372 780a -G..xx.rx.
(a='----',A='| |',b='--x--',B=' x ')=>[p=a+b+a,q=A+B+A,A+b+A,q,p].join`
`
_=>[p='x---',q='x| ','x| -',q,p].map(c=>[...'1221330331221'].map(d=>c[d]))
t_ps@L"x-
| "jC"??ôkË7"5
在这里在线尝试。上面的代码包含一些奇数字符,因此复制/粘贴可能不起作用。
打印图案的前半部分,然后打印不带中央的反向图案x
。
t_ps@L"x-\n| "jC"..."5 Note newline replaced with \n, encoded string replaced with ...
C"..." Convert encoded string to base 256 number 727558509253668163499780
j 5 Convert to base 5, yields [1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 2, 3, 4, 4, 3, 4, 4, 0, 4, 4, 3, 4, 4, 3, 2, 3, 4, 4, 3, 1, 1, 0]
@L Map each of the above to...
"x-\n| " ... [x, -, newline, |, space]
s Concatenate into string
p Print without newline
_ Reverse
t All but first character, implicit print
-1个字节,谢谢@AdmBorkBork
('------x------','| | x | |','| |--x--| |')[0,1+2..0]
[0,1+2..0]
string a="------x------\n",b="| | x | |\n";Console.Write(a+b+"| |--x--| |\n"+b+a);
取消高尔夫:
string a = "------x------\n",
b = "| | x | |\n";
Console.Write(a + b + "| |--x--| |\n" + b + a);
这是使用匿名功能的另一种方法,该方法基于第一个“打网球”线程中adrianmp的回答:
()=>{string a="------x------\n",b="| | x | |\n";return(a+b+"| |--x--| |\n"+b+a);};
取消高尔夫:
() =>
{
string a = "------x------\n",
b = "| | x | |\n";
return(a + b + "| |--x--| |\n" + b + a);
};
解:
"x-| "@4\:509 425 477 0@4\:17218113
例:
q)k)"x-| "@4\:509 425 477 0@4\:17218113
"------x------"
"| | x | |"
"| |--x--| |"
"| | x | |"
"------x------"
说明:
我们想要生成数组索引的列表"x-| "
,例如
1 1 1 1 1 1 0 1 1 1 1 1 1
2 3 3 2 3 3 0 3 3 2 3 3 2
2 3 3 2 1 1 0 1 1 2 3 3 2
2 3 3 2 3 3 0 3 3 2 3 3 2
1 1 1 1 1 1 0 1 1 1 1 1 1
为了产生这一点,我们可以采用这些数字的倒数的4进制表示。这给了我们:
425 509 509 425 477 477 0 477 477 425 509 509 425
我们可以采用不同的值,并在所需的索引处进行索引:
q)509 425 477 0@1 0 0 1 2 2 3 2 2 1 0 0 1
425 509 509 425 477 477 0 477 477 425 509 509 425
此数组1 0 0 1 2 2 3 2 2 1 0 0 1
转换为base-4是
q)k)4/:1 0 0 1 2 2 3 2 2 1 0 0 1
17218113
因此,对于解决方案,我们只是相反地执行这些步骤。
"x-| "@4\:509 425 477 0@4\:17218113 / the solution
4\:17218113 / convert 17218113 into base-4
509 425 477 0@ / index (@) into 509 425 477 0
4\: / convert to base-4
"x-| "@ / index (@) into "x-| "