ASCII「スプラット」を出力する


10

ASCII卵を特定の方向に投げると、サイズがnの ASCIIスプラットになります。これは1つo(卵黄)で「始まり」、2からn までの「行」で指定された方向に続き*ます。*さんは、一つの『スペース』によって分離され、そしてoのおよびすべての『行』*さんは『スペース』の『行』によって分離されています。

スプラットの方向は、からの8つの方向のいずれかにすることができます。o次に例を示します。

1 2 3
4 o 5
6 7 8

ここ方向のサイズ4のASCIIのスプラットの例であり52そして3それぞれは 左側は実際のASCIIスプラットで、右側は同じスプラットですが、「スペース」の「行」が実際の「行」(つまり-\または|方向に応じて)に置き換えられています。空間の「線」。

Size 4, direction 5
      *      | | |*
    *        | |*| 
  *   *      |*| |*
o   *       o| |*| 
  *   *      |*| |*
    *        | |*| 
      *      | | |*

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

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

チャレンジ

所与のn≥1と8つの可能な方向のいずれか、サイズのASCIIのスプラットを出力する機能またはプログラム書き込みN一定方向にします。

入出力

一貫性のある合理的な入力形式が許可されます。方向を1から8の整数にマッピングする必要はありません。他の方法で方向を指定する方が簡単な場合は、先に進んでください。しかし、それが明確でない場合は、何をしたかを言ってください。

出力が構成されますo*ASCIIのスプラットを生成、スペース(U + 0020)と改行(U + 000A)。先頭、末尾、それ以外の場合は、任意の行で余分な空白を使用できます。

ルール

これはです。標準ルールが適用されます。

その他の例

Size 1, any direction
o

Size 3, direction 6
* * o

  * *

    *

Size 5, direction 7
    o    

   * *

  * * *

 * * * *

* * * * *

回答:


3

チャコール20 18バイト

↘EN×*⊕ιM↗oUE¬﹪η²⟲η

オンラインでお試しください!リンクはコードの詳細バージョンです。説明:

↘EN×*⊕ι

スプラットの対角三角形を描きます。

M↗o

卵を置きます。

UE¬﹪η²

均等に回転させるには、スプラットを水平方向に広げて、出力要件に合わせます。この要件は、チャコールの通常の期待と一致しません。オンラインでお試しください!(冗長)なしでの外観。

⟲η

指示に従って次のコードを使用して、必要に応じてスプラットを回転させます。

321
4o0
567

この37バイトの31バイトバージョンは、直角に回転するだけで無関係な空白を回避します。

¿﹪η²G↘←θ*«↘Eθ×*⊕ι↗»oUE¹﹪η²⟲⊗÷η²

オンラインでお試しください!リンクはコードの詳細バージョンです。


2

ゼリー、37バイト

”*ẋK¥ⱮmṠ©}”oḷ""LḶ⁶ẋƲ;"ṚƊ®¡z⁶K€ZU$A}¡Y

オンラインでお試しください!

行き方:

[1245678][214214]


1

Python 2、185バイト

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です。

1 6 0
7 o 5
2 4 3

注:ほとんどの作業は、(私の番号付けシステムで)0およびの基本パターンを生成すること4です。次に、関数gは配列を回転させますad%4再帰 90度させて、他の結果を生成します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.