挑战
您的程序或函数将接受来自STDIN或函数参数的单个字符串输入。您可以假定输入将仅包含字母字符(a-zA-Z),空格和句号。输入不区分大小写,因此您应将'a'与对待'A'完全一样。
对于字符串中的每个字符,您将按照以下规范输出建筑物的表示形式。
每个建筑物必须有一个屋顶,在顶行上用下划线指定,然后在第二行上用斜杠,空格和反斜杠指定。
_
/ \
然后,您将拥有多个楼层,与字母编号(a = 1,b = 2,c = 3等)匹配,字母编号由两侧的墙(|)和中间的空格表示。底层(并且只有底层)应具有基础,该基础是墙之间的下划线。像这样...
|_|
因此,例如,“ b”看起来像这样
_
/ \
| |
|_|
现在,我们知道非常高,狭窄的建筑物无法站立,必须在底部变宽,因此没有任何其他支撑,任何建筑物都不能站立超过三层高。因此,每三个级别(不少于一个)都应添加一个“扩展层”。加宽层由位于其下面部分的壁正上方的斜杠和反斜杠组成,并且下面的部分应比上面的部分宽两个空格。多余的层不计入建筑物的高度。
建筑物不应重叠,但建筑物之间不应有任何多余的空间,并且地面始终是平坦的,因此所有建筑物的底脚应在同一水平线上。
例如,“ abcdefga”将如下所示。
_
/ \
_ | |
_ / \ | |
_ / \ | | | |
/ \ | | | | / \
_ | | | | | | | |
_ / \ | | | | / \ | |
_ / \| | | | / \| | | | _
/ \| || |/ \| || |/ \/ \
|_||_||_||___||___||___||_____||_|
字符串输入中的空格应由双精度空格表示。
字符串输入中的句号应该用这样的碎石表示。
/\/\
进一步的例子
输入= Hello world.
输出=
_
/ \
| |
| |
| |
/ \
| |
| | _
| | / \
/ \ | |
| | | |
_ | | _ | |
/ \ | | / \ / \
| | / \ | | | |
| | | | | | | |
_ _ | | | | | | | | _
/ \ / \ / \ | | / \ / \ / \
| | | | | | / \ | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
_ / \ / \ / \ | | / \ / \ / \
/ \ | | | | | | / \ | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | _ / \ / \ / \ | | / \ / \ / \
/ \ / \ | | | | | | / \ | | | | | | _
| | | | | | | | | | | | | | | | | | / \
| | | | | | | | | | | | | | | | | | | |
| | | | / \/ \/ \ | | / \/ \/ \ | |
/ \/ \| || || | / \| || || | | |
| || || || || | | || || || |/ \
|_____||___||_______||_______||_________| |_______________||_________||___________||_______||___|/\/\
输入= lorem ipsum
_
/ \
_ | |
/ \ | |
_ | | | |
/ \ | | / \
| | _ | | | |
| | / \ / \ | |
_ | | | | | | | |
/ \ / \ | | | | / \
| | | | _ | | | | | | _
| | | | / \ / \ / \ | | / \
_ | | | | | | | | | | | | | |
/ \ / \ / \ | | | | | | / \ | |
| | | | | | | | | | | | | | | |
| | | | | | / \ / \ / \ | | / \
| | | | | | | | _ | | | | | | | |
/ \ / \ / \ | | / \ | | | | / \ | |
| | | | | | | | | | | | | | | | | |
| | | | | | / \ | | / \ / \ | | / \
| | | | | | | | | | | | | | | | | |
/ \ / \ / \ _ | | / \ | | | | / \ | |
| | | | | | / \ | | | | | | | | | | | |
| | | | | | | | / \ | | / \ / \ | | / \
| | | | | | | | | | | | | | | | | | | |
/ \/ \/ \ | | | | / \ | | | | / \ | |
| || || |/ \ | | | | | | | | | | | |
| || || || |/ \ | |/ \/ \| |/ \
|_______||_________||___________||___||_________| |_____||___________||_____________||_____________||_________|
输入= a.a.a.x.x.x.a.a.a
_ _ _
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
_ _ _ | | | | | | _ _ _
/ \ / \ / \ | | | | | | / \ / \ / \
|_|/\/\|_|/\/\|_|/\/\|_______________|/\/\|_______________|/\/\|_______________|/\/\|_|/\/\|_|/\/\|_|
规则
- 当然这是代码高尔夫,以字节为单位的最低得分获胜
- 适用标准漏洞规则
- 在输出之前或之后可以有任意数量的其他空白行
- 您可以选择将整个结果输出为一个字符串,也可以将输出提供为数组,其中每个元素代表一行输出,或者发送到STDOUT
注意
这是我对PPCG的第一篇文章,所以请放轻松。已经通过了沙箱。任何不利之处或可能的改进,请发表评论,我将尽我所能
[a,z]
和[A,Z]
对[1,26]
似乎是一个毫无意义的要求。最好只使用列表整数作为输入(必须0
是碎石的输入)。此外,在您仅在沙箱中停留21个小时之后就发布您的挑战,而不必等待获得来自多个用户的任何投票或反馈,就不算挑战已经“穿越了沙箱”。建议您将挑战至少在沙箱中保留48-72小时,以使人们有足够的时间进行审查。