ASCII“splat”출력


10

주어진 방향으로 ASCII 계란을 던지면 크기가 n 인 ASCII 표시가 생깁니다 . 그것은 하나 o의 노른자 (노른자)로 "시작"되며 , 2 줄에서 n 까지의 "줄"로 주어진 방향으로 계속됩니다 *. *의 하나 "공간"에 의해 분리되는, 상기 o의 모든 "행" *의이 "공간"의 "선"에 의해 분리된다.

스 플랫의 방향은 다음과 같은 8 가지 방향 중 하나 일 수 있습니다 o.

1 2 3
4 o 5
6 7 8

여기서 방향 사이즈 (4)의 표시가 ASCII의 예 5, 23각각이. 왼쪽에 실제 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, *공백 (0,020 U +) 및 ASCII 경고등을 생성 바꿈 (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¬﹪η²

균일 한 회전을 위해서는 스 플랫을 수평으로 확장하여 출력 요구 사항에 맞 춥니 다. 이 요구 사항은 Charcoal의 일반적인 기대와 일치하지 않습니다. 온라인으로 사용해보십시오! 없는 모습에 대한 (자세한).

⟲η

지시 사항에 다음 코드를 사용하여 필요에 따라 표시를 회전하십시오.

321
4o0
567

37 31 바이트 버전은 직각으로 만 회전하여 불필요한 공백을 피합니다.

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

온라인으로 사용해보십시오! 링크는 자세한 버전의 코드입니다.


2

젤리 , 37 바이트

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

온라인으로 사용해보십시오!

지도:

[1245678][214214]


1

파이썬 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는 재귀를 통해 배열을 a90도 회전 d%4하여 다른 결과를 생성합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.