이 경쟁은 끝났습니다. 흥미로운 비 -esolang 항목에 감사하고, JavaScript를 제출 한 Jakuje 에게 축하 를 전합니다.
이 사이트의 ASCII 아트 챌린지의 위대한 전통에서 또 다른 것이 있습니다. 입력이 주어지면 나선을 그립니다.
&>----v
||>--v|
|||>v||
|||@|||
||^-<||
|^---<|
^-----<
간단 하죠? 허, 허, 허 ... 그래 ...
( ASCII Dragons Curve 게시물 및 Optimizer의 ASCII Art of the Day에서 영감을 얻었습니다. 게시물에서 )
입력
입력은 언어에 상관없이 일반적인 STDIN / 함수 인수 등에서 취한 일련의 매개 변수 형식으로 이루어지며 네 부분으로 구성됩니다. 이 부분들은 4 개의 독립된 인수, 4 배, 크기 4의 배열 등이 될 수 있습니다. 도전을 통한 단순성과 일관성을 위해 입력을 단일 단어로 표현할 것입니다.
- 정수
2 ≤ x ≤ 20
인쇄 된 각 문자가 하나의 "사각형"크기를 나타내는 "사각형"으로 나선의 크기를 지정 입니다. 이론적으로 이것은 범위가 엄청날 수 있지만, ASCII 아트를 그릴 때, 안전한 상한은 20이되어 화면에 다소 맞습니다. - 시작 "사각"(아래, 위, 오른쪽, 왼쪽)에서 초기 이동을 나타내는
d u r
또는 의 단일 문자l
. c
"시계 반대 방향"을 나타내는 옵션 입니다. 를c
생략하면 나선의 시계 방향 회전을 가정합니다.1 ≤ y ≤ 10
이전 나선의 끝 "사각"을 새 나선의 시작 "사각"으로 사용하여 나선 그리기를 반복하는 횟수를 지정하는 최종 정수 . 도면을 어느 시점에서 끝내기를 원하기 때문에 상한을 10으로 지정합니다.- 몇 가지 입력 예 :
20lc5
13d2
2rc1
크기 입력에 대한 홀수 값은 @
항상 나선의 정확한 중심이되지만 초기 값의 방향에 따라 네 개의 대각선 방향에서 시작 "사각"오프셋이있을 수 있습니다. 여행. 이것은 몇 가지 흥미로운 ... 패턴을 초래할 수 있습니다. 아래의 두 가지 짝수 예를 참조하십시오.
입력 사양을 따르지 않는 입력 (예 11q#s
:)은 정의되어 있지 않으며 프로그램이 적절하게 작동 할 것으로 예상합니다. :)
산출
출력은 다음 스펙을 가진 언어와 동등한 STDOUT을 통한 ASCII 인쇄 가능 출력입니다.
- 각 재귀의 시작 "제곱"은 at-sign으로 표시되어야합니다
@
. - 최종 "정사각형"은 앰퍼샌드로 표시되어야합니다
&
. 여러 재귀의 경우 마지막 "제곱"만 표시해야합니다&
. - 나선형 경로의 모서리는를 사용하여 이동 방향을 "지점"으로해야합니다
< > v ^
. - 수직 이동은 파이프로 그려야합니다
|
. - 수평 이동은 대시로 그려야
-
합니다. - 나중에 재귀로 덮어 쓰는 "사각"에는 가장 최근의 이동 방향이 표시되어야합니다. 이것은 "더 오래된"재귀 위에 "더 새로운"재귀가 겹쳐져있는 것처럼 보일 것입니다.
4rc3
아래 예를 참조하십시오 . - 마지막 후행 줄 바꿈은 정상이며 선행 공백은 필수 일 수 있으므로 허용되지만 후행 공백은 허용되지 않습니다.
- 이스케이프 시퀀스를 사용하여 ASCII 아트를 STDOUT으로 가져 가면 도킹하지 않지만 조용히 실망 할 것입니다. (바운티를 사용하면 현상금을받을 수 있습니다)
예
2d4
= 직경 2, 시계 방향으로 내려 가면서 시작, 4 회귀
&@@@@
^<<<<
이 예에서 도면은 오른쪽 상단에서 시작하여 @
1 개, 왼쪽, 1 개씩 내려갑니다. 이 시점에서, 우리는 2d
부분을 완성했습니다 . 그리고 두 번째 재귀를 시작하십시오. 그래서 우리는 다른 @
하나, 왼쪽 하나, 하나 위로; 그런 다음 세 번째 재귀; 그리고 네번째 그리고 마지막으로 우리 &
.
4rc3
= 직경 4, 시계 반대 방향으로 3 회 반복으로 시작
&--<
v-<|
|@^|<
>--^|
|@^|<
>--^|
|@^|
>--^
이 예에서 도면은 맨 아래에서 시작하여 @
오른쪽으로 올라갑니다. 하나는 위로 올라가고, 중간에 도달 @
하여 4rc
부분 이 끝날 때까지 나선을 그 립니다. 그런 다음 전체 재귀를 요청하기 위해 두 번 더 반복합니다. 참고 4rc1
이 예제의 바로 왼쪽 상단 4 × 4 블록 될 것이다.
7u1
= 직경 7, 시계 방향, 1 회귀로 시작하여 시작합니다 (참고는 소개와 같습니다)
&>----v
||>--v|
|||>v||
|||@|||
||^-<||
|^---<|
^-----<
당첨 및 제한
이것은 코드 골프이므로 바이트 단위의 최소 답변이 이깁니다. 제출은 일반적인 형태의 프로그램 / 기능 / CJam 코드 블록 등이어야합니다. 표준 허점 제한이 적용됩니다. 폐쇄 코스의 전문 운전자. 자극이 지속되면 사용을 중단하고 의사와 상담하십시오.