首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >建造ASCII拱门

建造ASCII拱门
EN

Code Golf用户
提问于 2016-01-10 23:28:55
回答 7查看 909关注 0票数 17

我喜欢ascii艺术,我很无聊,所以我找到了一些ascii的角色,开始做一些随机的东西,8位马里奥城堡,迷宫和拱门。我发现拱门可以很容易地整齐地堆放起来。

代码语言:javascript
复制
╔═══════╗
║╔═════╗║
║║╔═══╗║║
║║║╔═╗║║║
╨╨╨╨─╨╨╨╨

挑战

创建一个程序、函数或任何其他标准格式,该格式接受大于或等于0的整数(除非您正在进行奖励),并以指定的拱数输出ascii艺术。

测试用例

输入:

代码语言:javascript
复制
7

输出:

代码语言:javascript
复制
╔═════════════╗
║╔═══════════╗║
║║╔═════════╗║║
║║║╔═══════╗║║║
║║║║╔═════╗║║║║
║║║║║╔═══╗║║║║║
║║║║║║╔═╗║║║║║║
╨╨╨╨╨╨╨─╨╨╨╨╨╨╨

备选案文:

代码语言:javascript
复制
+-------------+
|+-----------+|
||+---------+||
|||+-------+|||
||||+-----+||||
|||||+---+|||||
||||||+-+||||||
||||||| |||||||
---------------

输入:

代码语言:javascript
复制
1

输出:

代码语言:javascript
复制
╔═╗
╨─╨

备选案文:

代码语言:javascript
复制
+-+
| |
---
  • 如果整数为0,则不要输出任何内容
  • 这个问题将出现在utf-8中,每个字符将被计算为一个“字节”。
  • 这是古德道夫,所以最短的答案获胜。
  • 您可以选择使用+-+代替╔═╗,使用---代替╨─╨,使用|代替

奖金(没有决定是否允许在替代版本上这样做,因为这并不难)

-10%如果程序支持负数并像这样翻转拱门

代码语言:javascript
复制
╥╥╥╥─╥╥╥╥
║║║╚═╝║║║
║║╚═══╝║║
║╚═════╝║
╚═══════╝
EN

回答 7

Code Golf用户

回答已采纳

发布于 2016-01-11 01:27:13

CJam,59字节

代码语言:javascript
复制
qi:Lg"^Za"a{_0=1'Z3*tsa\{'[2*\*}%+}L(*'rL*a2*N*a+9462ff+N**

在这里试试!

票数 1
EN

Code Golf用户

发布于 2016-01-11 00:15:19

Python2,106个字节(94个字符)

代码语言:javascript
复制
n=input();j=1
exec"s=j/2*'║';print s+'╔'+'═'*(2*n-j)+'╗'+s;j+=2;"*n
if n:t='╨'*n;print t+'─'+t

相当直截了当。用变化的水平和垂直条数逐行打印。最后一行分别打印。

我觉得我错过了一些优化。字符是多个字节的事实意味着您不能执行类似'║╨'[n>0]的操作,所以我没有找到一种很好的方法来打印循环中的最后一行。柜台上有这么多操纵操作,真是太丑了。我希望直接更新字符串,比如s+='║',但是索引也用于水平条。

票数 2
EN

Code Golf用户

发布于 2018-07-11 09:36:45

杰夫特 -R,29字节

使用+ & -。牺牲了4个字节来处理血腥的输入验证!

代码语言:javascript
复制
©Æ'+²¬q-p´UÑÄÃpS û| p-pNÑÄ)ªP

试试看

解释

代码语言:javascript
复制
                                  :Implicit input of integer U
©                                 :Logical AND with U
 Æ                                :Map the range [0,U)
  '+                              :  Literal "+"
    ²                             :  Repeat twice
     ¬                            :  Split
      q                           :  Join with
       -                          :   Literal "-"
        p                         :   Repeat
         ´U                       :    Decrement U
           Ñ                      :    Multiply by 2
            Ä                     :    Add 1
             Ã                    :End mapping
              pS                  :Push a space
                 û|               :Centre pad each element with "|" to the length of the longest element
                    p     )       :Push
                     -            : Literal "-"
                      p           : Repeat
                       N          :  The array of inputs (which will be cast to an integer if we perform a mathematical operation on it)
                        ÑÄ        :  Multiply by 2 and add 1
                           ª      :Logical OR
                            P     :The empty string
                                  :Implicitly join with newlines and output
票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/69094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档