首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >输出ASCII "splat“

输出ASCII "splat“
EN

Code Golf用户
提问于 2018-06-25 20:17:29
回答 2查看 440关注 0票数 10

如果你把一个ASCII鸡蛋扔向一个给定的方向,你就会得到一个大小为n的ASCII碎片。它以一个o (蛋黄)“开始”,然后在给定的方向上继续使用由2到n *'s组成的“线”。*'s由一个“空格”隔开,而o*的所有“线条”被“空间”的“线条”隔开。“

splat的方向可以是来自o的八个方向之一,例如:

代码语言:javascript
复制
1 2 3
4 o 5
6 7 8

这里是ASCII在方向523的第4尺寸的剪接的例子。左边是实际的ASCII分片,右边是相同的分片,但“空格”的“线”替换为实际的“线”(即-\|,视方向而定),目的是澄清“空间线”是什么意思。

代码语言:javascript
复制
Size 4, direction 5
      *      | | |*
    *        | |*| 
  *   *      |*| |*
o   *       o| |*| 
  *   *      |*| |*
    *        | |*| 
      *      | | |*

Size 4, direction 2
* * * *     * * * *
            -------
 * * *       * * *
            -------
  * *         * *
            -------
   o           o

Size 4, direction 3   
*           *      
            \
* *         *\*    
            \ \
* * *       *\*\*
            \ \ \ 
o * * *     o\*\*\*

挑战

给定n个≥1和8个可能的方向之一,编写一个函数或程序,输出大小为n的给定方向的ASCII分片。

输入输出

任何一致的、合理的输入格式都是允许的。您不需要像我所做的那样将方向映射到整数1到8--如果其他指定方向的方法更容易,请继续。但如果不清楚的话就说你做了什么。

输出将由o*、空格(U+0020)和换行符(U+000A)组成,它们将产生ASCII分片。引导,尾随,否则在任何行上都允许额外的空格。

规则

我是密码-高尔夫。适用标准规则。

更多示例

代码语言:javascript
复制
Size 1, any direction
o

Size 3, direction 6
* * o

  * *

    *

Size 5, direction 7
    o    

   * *

  * * *

 * * * *

* * * * *
EN

回答 2

Code Golf用户

发布于 2020-11-04 11:25:34

画布,25 字节数

代码语言:javascript
复制
H*×]on╶2%?!/ *] */}⤢ *⁷⇵⟳

在这里试试!

指示如下:

代码语言:javascript
复制
7 6 1
4 ∘ 8
5 2 3
票数 2
EN

Code Golf用户

发布于 2018-06-26 20:22:09

Python 2,185个字节

代码语言:javascript
复制
lambda n,d:'\n'.join(g([(d/4*(n+~j)*' '+('*o'[[j>n-2,j<1][d/4]]+' *'*j)*i).ljust(2*n-1)for j in range(n)for i in(0,1)][1:],d%4))
g=lambda a,n:n and g(map(''.join,zip(*a))[::-1],n-1)or a

在网上试试!

编号从0到7,如下:

代码语言:javascript
复制
1 6 0
7 o 5
2 4 3

注意:大部分工作是为(在我的编号系统中) 04生成基本模式。然后,函数g通过递归将数组a旋转90度d%4次,以生成其他结果。

票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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