给我盖一堵砖墙!


73

挑战

我需要帮助来建造一堵砖墙!在没有输入的情况下为我提供一些代码,并产生以下输出墙:

_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

现在,这堵墙正好是10字符高而70字符宽。

如上所述,没有输入,只有代码。最少的字节数,我们必须有效地构建此砖墙。显然,此程序必须具有构建墙的功能。否则它显然不会自行构建!祝好运!


优胜者

获胜者使用该语言前往MarinusAPL,需要一整个12字节! https://codegolf.stackexchange.com/a/99028/61857


谢谢大家的参与!



8
也相关。(奇怪的是今天应该会出现,哈哈)
Conor O'Brien

1
没关系。当我有工作的口译员时,我会通知您。我现在正在处理,实际上:)
ETHproductions'Nov


30
对于奖励积分,请墨西哥支付。
达伍德·伊本·卡里姆

Answers:


46

APL,12个字节

10 70⍴'_|__'

输出:

      10 70⍴'_|__'
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

1
当我输入J答案时,我刚刚注意到了这个答案。他们基本上是相同的哈哈
Conor O'Brien

2
除了ascii墙外,这还会输出其他内容。可以吗?
缓冲读取

当使用tryapl.org时,我得到了墙输出。你收到了@TheBitByte什么?
FivePixels

4
@Dylan他可能很困惑,因为应答者在不知道APL的REPL性质的情况下将程序包含在输出中。
Conor O'Brien

191

Trumpscript303个 285 244 231 226字节

make i 1000005-1000000
as long as,i;:
make i,i - fact;
say "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
say "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"!
America is great

我想说这是最冗长的语言之一,几乎所有内容都无法编译成工作程序。

显然,是否-工作而不是minus完全取决于解释器,有时是可行的。这次做到了,所以我把它像打高尔夫球一样放入。

滥用Trumpscript用Python编写的事实,因此fact当用作整数时为1。

欢迎打高尔夫球。


48
我认为Trumpscript不允许数字少于1,000,000?;-)
ETHproductions 2016年

3
你是对的。
2016年

2
可以使用i is 1000005-1000000i is i-fact吗?(只需看一下Trumpscript的自述文件即可。)
AlexRacer

19
我很惊讶它允许您使用1000000文档状态All numbers must be strictly greater than 1 million. The small stuff is inconsequential to us.
疯狂物理学家,2016年

9
Factlies(以及其他真/假常量)在标记化过程中有随机的,基于时间的触发(被反转)的机会(请参阅tokenizer.py,搜索flip_flop),这可能是为什么它似乎不起作用的原因minus,而实际上它必须这样做与fact在那个时间点
pinkfloydx33 '11


18

BBC BASIC,28个字节

标记化文件大小为23个字节。

WIDTH70P.STRING$(175,"_|__")

WIDTH70通常会在后面加上换行符。它将字段宽度设置为70。然后,我们仅打印175个字符串的副本,然后将其环绕。


2
我见过的对WIDTH的最佳(
abuse

然后,标题中应包含“ 23个字节”。
2013年

@Adám仅当将标记化版本发布为答案时。
ErikE

17

Brainfuck,171字节

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

Brainfuck很有趣,这是我的提交。

这是输出:

_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

这是尝试的链接

https://repl.it/EW2Z/0


16

WinDbg,45个字节

f2000000 L2bc 5f 7c 5f 5f;da/c46 2000000 L2bc

这个怎么运作:

f 2000000 L2bc 5f 7c 5f 5f; *Repeat the pattern _|__ (5F 7C 5F 5F) to fill 2BC (700) bytes 
                            *starting at 2000000
da /c46 2000000 L2bc        *Show 2BC (700) ASCII chars starting from 2000000 in lines 
                            *of length 0x46 (70)

输出:

0:000> f2000000 L2bc 5f 7c 5f 5f;da/c46 2000000 L2bc
Filled 0x2bc bytes
02000000  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
02000046  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
0200008c  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
020000d2  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
02000118  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
0200015e  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
020001a4  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
020001ea  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
02000230  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
02000276  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"

10

Pyth,12个字节

码:

jcT*175"_|__

说明:

       "_|__    # For the string "_|__"
   *175         # Repeat it 175 times
 cT             # Chop into 10 equal pieces
j               # Join them by newlines

在这里尝试


10

Python 2,37个字节

s="_|__"*17;print(s+"_|\n__%s\n"%s)*5

将两行分解为的17个副本_|__,再加上一个换行中断的另一个副本,再加上17个副本,再加上另一个换行。

更长的选择:

print"%s_|\n__%s\n"%(2*("_|__"*17,))*5

s="_|__"*17;print"%s_|\n__%%s\n"%s%s*5

for i in[0,2]*5:print("_|__"*18)[i:i+70]

print("_|__"*17+"_|\n"+"___|"*17+"__\n")*5

for s in["_|__","___|"]*5:print(s*18)[:70]

s="_|__"*99;exec"print s[:70];s=s[2:];"*10

print("%s"*70+"\n")*10%(175*tuple("_|__"))

你最后的选择是短print(("%s"*70+"\n")*10%(175*(*"_|__",)))在Python 3
mbomb007

8

05AB1E,13个字节

码:

"_|__"175×Tä»

说明:

"_|__"         # For the string "_|__"
      175×     # Repeat that 175 times
          Tä   # Split into 10 even pieces
            »  # And join them by newlines

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


7

PHP,44 42 41个字符

<?=chunk_split(str_pad(_,700,"|___"),70);

(只是因为以前没有机会使用chunk_split()。)

谢谢:

  • user59178建议使用str_pad()(-1个字符)

样品运行:

bash-4.3$ php <<< '<?=chunk_split(str_pad(_,700,"|___"),70);'
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

字节,而不是字符数。
FivePixels

2
相同。我不使用多字节字符。
manatwork

9
划掉的

2
@pajonk,使用PPCG修复-在我的计算机上删除了
manatwork

您可以使用str_pad代替来保存字节str_repeat,这主要是因为_它被视为带有value的常量_
user59178 '16

7

Vim,30 24 19击键

18a___|<esc>YP2x}h.yk4P

感谢DrMcMoylex和nmjcman101节省了宝贵的击键!


1
很好的答案,欢迎光临本站!一些提示:1)a需要计数,因此您可以18a___|<esc>代替宏来进行操作。2)<cr>在普通模式下等效于j0,因此您可以从第二个宏中减去一个字节。
DJMcMayhem

太好了,谢谢你的提示!
karpfen

1
我为您的解决方案打了些高尔夫。在复制/粘贴之前格式化墙会保存不创建宏的所有字节:18a___|<esc>YP2x}h.yk5P是19个字节。
nmjcman101 '16

好的,我将更新答案!我将倒数第二个键替换为4,否则墙会变得过高:)
karpfen

6

Perl,47 34 29字节

$_="_|__"x175;say for/.{70}/g

您可以打高尔夫球到29:say for("_|__"x175)=~/.{70}/g
达达州

出于某种原因,每次尝试时都不会产生任何输出,但是我发现了另一种解决方案,它占用了很多字节。不过谢谢你!
加布里埃尔·贝纳米

好吧,我建议的代码确实会产生有效的输出……也许您忘记了括号"_|__"x175或类似内容?
达达

我认为就是这样。我认为括号必须到某个地方,我只是
想不起

呵呵,很难记住每个运算符的优先级(=~比更高的优先级x!)!
达达

5

Perl,31个字节

say+($@="_|__"x17,"_|
__$@
")x5

您将需要-E标志来运行它:

perl -E 'say+($@="_|__"x17,"_|
__$@
")x5'

对于29个字节的想法略有不同:say for("_|__"x175)=~/.{70}/g:)。我确实喜欢您在那里使用的技巧!
Dom Hastings

@DomHastings huhu,我在Gabriel Benamy的答案注释中写了完全相同的代码!
达达

天哪!没看到那个!然后还看到它在其他答案中已被大量使用。
Dom Hastings

@DomHastings是的,起初我没有想到它,这已经在加百列的回答中了,所以这就是为什么我之后没有更新我的答案的原因;)
Dada

5

V24,16字节

175i_|__ò70|lé

在线尝试! 它包含<esc>字符(0x1B),因此这是一个十六进制转储:

0000000: 3137 3569 5f7c 5f5f 1bf2 3730 7c6c e90a  175i_|__..70|l..

感谢约旦,间接节省了8个字节!


19个字节:v.tryitonline.net/…但是我不知道如何使用V docs中提到.\{-}快捷方式。
约旦

@Jordan Wow,非常好!\{-}无论如何,该快捷方式将无法使用,因为您无法更改其中的数字。但是,你可以设置在高位\{拿到这个来代替。随意发布它作为答案。
DJMcMayhem

嗯,那很有道理。发表在这里:codegolf.stackexchange.com/a/99070/11261
约旦

该死的,我仍然需要使用这种语言:25字节
statox

5

V,18字节

-1个字节感谢DJMcMayhem。

175i_|__<Esc>Ó.û70}/°ò

这里是xxd格式的不可打印字符:

0000000: 3137 3569 5f7c 5f5f 1bd3 2efb 3730 7d2f  175i_|__....70}/
0000010: b0f2                                     ..

在线尝试!


尼斯,我不再是唯一使用过V的人!现在,我将不得不看看是否可以带头,哈哈
DJMcMayhem

5

MATL,15个字节

'_|__'700:)70e!

当然,您可以在线尝试! 说明:

'_|__' % Put a brick on the stack
700    % 700 times
:)     % Makes a happy mason...
70e!   % Secret freemason code

好的,实际上,它的工作方式如下:

'_|__' % Put the first bit of the string on the stack
700:   % Put 1, 2, ..., 700 on the stack as array
)      % Index into the string, modularly. Result: '_|___|__ ... __'
70e    % Reshape into 70 rows (and consequently, 10 columns)
!      % Transpose to get the desired output.

做得好!而且您的笑容胜过我的
笑容

@LuisMendo确实,使用笑脸可以认为是MATL中的一种设计模式。的xD也许你可以有:)C......但是这将是你的最后一个字节码点走了(或者是有另外一个原因C是没有用吗?)
Sanchises

您想摆脱笑脸吗??:-P
路易斯·门多

5

Python 2 2,46 44字节

只需使用字符串乘法来构建字符串,然后切片即可获取正确的位:)

k='_|__'*18
print'\n'.join([k[:70],k[2:]]*5)

感谢Antony Hatchkins保存了两个字节:)


可能少2个字节:print'\n'.join([k[:70],k[2:]]*5)
Antony Hatchkins '16

@AntonyHatchkins谢谢!
卡德

4

PowerShell v2 +,34个 30字节

'_|__'*175-split"(.{70})"-ne''

愚蠢的正则表达式匹配算法需要-ne''...浪费五个字节!

'_|__'*175-split"(.{70})"-ne''
'_|__'*175                     # Repeat this string 175 times
          -split"       "      # Split on this regex pattern:
                  .{70}        # Match any character 70 times
                 (     )       # Encapsulated in parens so we keep the regex results
                         -ne'' # But don't select the empty strings
                               # Output with newlines via Write-Output is implicit

感谢Conor,节省了4个字节!


.{70}正则表达式会更短吗?
科纳·奥布莱恩

split在其他语言中也是如此-无论您是否想要,始终都会得到不匹配的部分。某些语言具有match可用于返回仅匹配结果的数组的运算符,但我没有看到与之等效的PowerShell。
尼尔

@Neil Performing 'abc'-split'(.)'将返回('','a','','b','','c','')。没有什么比这更好的了,但是由于算法如何处理输入字符串,您会得到空字符串。看这里
AdmBorkBork,2016年

是的,我想说的是您不要为这个结果感到惊讶,因为那是split应该做的。
尼尔

@尼尔惊讶吗?不,不是。不过,这并不意味着我必须为此感到高兴。:D
AdmBorkBork

4

C,131 115 113 103 97 95个字节

i,j;main(){for(;i<10;puts(i++&1?"|__":"|"))for(j=0;j<18-(i&1);printf(&"|___"[j++?0:i&1?1:3]));}

是时候开始打高尔夫球了...

_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

3

果冻,14 字节

“_|__”ṁ700s70Y

TryItOnline!

怎么样?

“_|__”ṁ700s70Y - Main link: no arguments
“_|__”         - literal ['_','|','_','_']
      ṁ700     - mould like something 700 long
          s70  - split into chunks of length 70
             Y - join with line feeds

1
根据定义,果冻不能长于J。
Adám16年

我做了一些类似的事情却没有奇怪的地方“_|__”ẋ175œs⁵Y(14个字节)
Egg the Outgolfer



3

Javascript REPL,45个字节

"_|__".repeat(175).match(/.{70}/g).join("\n")

1
欢迎来到PPCG!应该将其标记为“ JavaScript REPL”或类似名称,因为这根本不会在交互式控制台环境之外打印任何内容。
马丁·恩德

1
这不是45个字节吗?
acrolith '16

@daHugLenny你说的对,我把\ n算作一个字节
Juan Tonina

console.log在哪里?
cardeol

1
只要您使用的是ES6(我认为是),就可以使用模板字符串,因此join("\n")成为join <backtick> <literal newline> <backtick>
Stephen

3

JavaScript(ES6),48个字节

f=(n=350)=>n?(n%35?'_':`
_`)+"|_"[n%2]+f(n-1):""

因为递归。


3

重击 44、41、40字节

printf _\|__%.0s {1..175}|egrep -o .{70}

printf单行长700个字符,而egrep一次匹配70个字符。





2

Ruby,30个字节

感谢manatwork提供的解决方案

puts ("_|__"*175).scan /.{70}/

Ruby,39个字节

10.times{|i|puts ("_|__"*18)[i%2*2,70]}

2
在生成,所有再分割的办法是缩短在这里太:puts ("_|__"*175).scan /.{70}/
manatwork 2016年

@manatwork非常感谢!我很少想到使用,scan因为我对正则表达式不太满意。您知道您可以将其发布为自己的答案...
Level River St

2

Haskell,56 47字节

unlines$[1..5]>>take 70.cycle<$>["_|__","___|"]
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.