Gosper 곡선이라고도 하는 Flow Snake 는 간단한 프로세스의 각 순서 / 반복에 따라 크기가 기하 급수적으로 증가하는 프랙탈 곡선입니다. 다음은 시공에 대한 세부 사항과 다양한 주문에 대한 몇 가지 예입니다.
주문 1 Flow Snake :
____
\__ \
__/
주문 2 Flow Snake :
____
____ \__ \
\__ \__/ / __
__/ ____ \ \ \
/ __ \__ \ \/
\ \ \__/ / __
\/ ____ \/ /
\__ \__/
__/
주문 3 Flow Snake :
____
____ \__ \
\__ \__/ / __
__/ ____ \ \ \ ____
/ __ \__ \ \/ / __ \__ \
____ \ \ \__/ / __ \/ / __/ / __
____ \__ \ \/ ____ \/ / __/ / __ \ \ \
\__ \__/ / __ \__ \__/ / __ \ \ \ \/
__/ ____ \ \ \__/ ____ \ \ \ \/ / __
/ __ \__ \ \/ ____ \__ \ \/ / __ \/ /
\ \ \__/ / __ \__ \__/ / __ \ \ \__/
\/ ____ \/ / __/ ____ \ \ \ \/ ____
\__ \__/ / __ \__ \ \/ / __ \__ \
__/ ____ \ \ \__/ / __ \/ / __/ / __
/ __ \__ \ \/ ____ \/ / __/ / __ \/ /
\/ / __/ / __ \__ \__/ / __ \/ / __/
__/ / __ \ \ \__/ ____ \ \ \__/ / __
/ __ \ \ \ \/ ____ \__ \ \/ ____ \/ /
\ \ \ \/ / __ \__ \__/ / __ \__ \__/
\/ / __ \/ / __/ ____ \ \ \__/
\ \ \__/ / __ \__ \ \/
\/ \ \ \__/ / __
\/ ____ \/ /
\__ \__/
__/
구성
1 개의 흐름 뱀이 7 개의 모서리와 8 개의 정점 (아래에 표시되어 있습니다. 타당성을 위해 확대됨)을 포함하는 경로로 구축되도록 주문합니다
4____5____6
\ \
3\____2 7\
/
0____1/
이제 다음 순서마다 모서리를이 원래 순서 1 패턴의 회전 된 버전으로 바꾸십시오. 모서리를 교체하려면 다음 3 가지 규칙을 사용하십시오.
1 수평 가장자리의 경우 그대로 원래 모양으로 교체하십시오.
________
\ \
\____ \
/
____/
이 경우 a /
(에지 12
상기 구성에서), 다음 회전 된 버전으로 대체 :
/
/ ____
\ / /
\/ /
/
____/
3 의 경우 a \
에지 ( 34
및 67
위), 다음 회전 된 버전으로 대체 :
/
/ ____
\ \ \
\ \ \
\ /
\/
예를 들어, 주문 1의 정점이있는 주문 2는 다음과 같습니다.
________
\ \
________ \____ \6
\ \ / /
\____ \5___/ / ____
/ \ \ \
4___/ ________ \ \ \7
/ \ \ \ /
/ ____ \____ \2 \/
\ \ \ / /
\ \ \3___/ / ____
\ / \ / /
\/ ________ \/ /
\ \ /
\____ \1___/
/
0___/
이제 더 높은 차수의 경우 현재 레벨을 길이 1 /
, 1 \
또는 2의 가장자리로 나누고 _
프로세스를 반복하십시오. 교체 후에도 두 개의 연속 모서리 사이의 공통 정점이 여전히 일치한다는 점에 유의하십시오.
도전
N
STDIN / ARGV / 함수 인수 또는 가장 가까운 해당 인수를 통해 단일 정수 를 수신하고N
STDOUT에 순서 스네이크를 인쇄 하는 전체 프로그램의 함수를 작성해야합니다 .- 입력 정수는 항상보다 큽니다
0
. - 패턴의 일부가 아닌 선행 공백이 없어야합니다.
- 최소 경계 사각형을 완전히 채우기 위해 패턴을 채울 수있는 후미 공백이나 후미 공백이 없어야합니다.
- 후행 줄 바꿈은 선택 사항입니다.
재미있는 사실
- Flow Snakes는 Snow Flakes의 단어 놀이로,이 패턴은 2 번 이상과 유사합니다.
- 플로우와 스네이크는 패턴이 전체적으로 흐르는 단일 경로로 구성되므로 실제로 패턴의 일부를 담당합니다.
- 주의해서 알면 차수 2 (및 그 이상) 패턴은 현재와 이전 가장자리의 공통 정점에서 피벗 된 차수 1 패턴의 회전으로 구성됩니다.
- Flow Snakes의 ASCII가 아닌 변형이 있으며 여기 와 다른 여러 위치에서 찾을 수 있습니다 .
이것은 코드 골프 이므로 바이트 단위의 가장 짧은 코드가 승리합니다!
리더 보드
답변이 표시되도록하려면 다음 마크 다운 템플릿을 사용하여 모든 답변을 헤드 라인으로 시작하십시오.
# Language Name, N bytes
N
제출물의 크기는 어디에 있습니까 ? 당신이 당신의 점수를 향상시킬 경우에, 당신은 할 수 있습니다 를 통해 눈에 띄는에 의해, 헤드 라인에 오래된 점수를 유지한다. 예를 들어 :
# Ruby, <s>104</s> <s>101</s> 96 bytes