ASCII “uyarısı” çıktısı alın


10

Bir ASCII yumurtasını belirli bir yönde atarsanız, n boyutunda bir ASCII uyarısı alırsınız . oBiriyle (yumurta sarısı) "başlar" ve 2'den n'ye kadar olan "çizgiler" ile belirli bir yönde devam eder *. *'Tek bir 'boşluk' ile ayrılır ve ove bütün 'hat' *' s 'boşluk', 'satır' ile ayrılır.

Uyarının yönü aşağıdakilerden sekiz yönden herhangi biri olabilir o, örneğin:

1 2 3
4 o 5
6 7 8

İşte yönlerde büyüklüğü 4'ün ASCII işaretleriyle örnekleridir 5, 2ve 3sırasıyla. Solda gerçek ASCII uyarısı olduğunu ve sağdaki aynı uyarısı ama "boşluk" nin "satırları" fiili "satırları" ile değiştirilir (yani birlikte olduğu -veya \veya |yöne bağlı olarak) sadece kasıt netleştirmek için uzayın "çizgisi".

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

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

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

Meydan okuma

Verilen n ≥ 1 ve 8 olası yönde bir, bir fonksiyon ya da programı yazmak bu boyutta çıkışları ASCII uyarısı n bir yönde.

Giriş ve çıkış

Tutarlı, makul bir giriş biçimine izin verilir. Yönleri 1 ile 8 arasındaki tamsayılarla aynı şekilde eşlemenize gerek yoktur - yönü belirtmenin başka bir yolu daha kolaysa, devam edin. Ama net değilse, ne yaptığını söyle.

Çıkış oluşacaktır o, *, boşluk (0020 U +) ve ASCII splat üreten yeni satırlar (U 000A). Önde, arkada, aksi takdirde herhangi bir satırda ekstra boşluklara izin verilir.

kurallar

Bu . Standart kurallar geçerlidir.

Daha fazla örnek

Size 1, any direction
o

Size 3, direction 6
* * o

  * *

    *

Size 5, direction 7
    o    

   * *

  * * *

 * * * *

* * * * *

Yanıtlar:


3

Kömür , 20 18 bayt

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

Çevrimiçi deneyin! Bağlantı, kodun ayrıntılı versiyonudur. Açıklama:

↘EN×*⊕ι

Uyarıların çapraz üçgenini çizin.

M↗o

Yumurtayı yerleştirin.

UE¬﹪η²

Eşit dönüşler için, uyarıyı çıktı gereksinimine uyacak şekilde yatay olarak genişletin. Bu gereklilik, Charcoal'ın olağan beklentilerine uymuyor. Çevrimiçi deneyin! (ayrıntılı) olmadan nasıl göründüğü için.

⟲η

Talimatlar için aşağıdaki kodu kullanarak uyarıyı gerektiği gibi döndürün:

321
4o0
567

Bu 37 31 baytlık sürüm, yalnızca dik açılarda dönerek yabancı boşlukları önler:

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

Çevrimiçi deneyin! Bağlantı, kodun ayrıntılı versiyonudur.


2

Jöle , 37 bayt

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

Çevrimiçi deneyin!

Talimatlar:

[12345678][-21-342-13-4]


1

Python 2 , 185 bayt

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

Çevrimiçi deneyin!

Numaralandırma aşağıdaki gibi 0 ila 7 arasındadır:

1 6 0
7 o 5
2 4 3

Notlar: Çalışmaların çoğu (numaralandırma sistemimde) 0ve için temel desenler oluşturmaktır 4. Daha sonra fonksiyon diğer sonuçları oluşturmak için gdiziyi özyineleme yoluyla a90 derece döndürür d%4.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.