어린이 과학 박물관에서 야곱의 사다리 를 보았을 것 입니다. 그들이 어떻게 생겼는지에 익숙하지 않다면 Wikimedia Commons 에 몇 가지 이미지와 비디오 예제가 있습니다. 오늘날 도전은 전기 가제트의 애니메이션 ASCII 버전을 만드는 것입니다. 결국 다음과 같이 보일 것입니다.
사다리 건설
다음은 높이 ( H )가 6 인 사다리의 기본 모양입니다 .
6 \ /
5 \ /
4 \ /
3 \ /
2 \ /
1 \ /
0 ¯¯
왼쪽의 숫자는이 예제의 행 번호를 나타내며 출력에 포함되지 않아야합니다. 주어진 행을 숫자 ( R )로 참조합니다. 행 0이 맨 아래 ¯¯
입니다. 1 행부터 H 행 까지는 네 부분으로 구성됩니다.
반복되는 공간 (U + 0020) ( H - R )
- 백 슬래시
\
(U + 005C) 반복되는 공간 (U + 0020) (2 * R )
- 슬래시
/
(U + 002F)
슬래시가 모두 매크로 ¯
(U + 00AF) 로 대체 된 것을 제외하고 행 0은 동일합니다 . 각 줄의 끝이나 사다리 아래의 후행 공백은 괜찮습니다. 선행 공백은 아닙니다.
아크 건설
래더가 구성되면 왼쪽과 오른쪽 사이에 호를 만들 수 있습니다. 하나의 호는 완전히 한 행 안에 있으며 선행 \
과 후행 사이의 공간을 대체합니다 /
. 따라서 2 행에는 호에 4 개의 문자가 있고 3 행에는 6 개의 문자가 있습니다. 각 호는 다음 규칙을 사용하여 구성됩니다.
- 유일하게 허용되는 문자는
_/¯\
(U + 005F, U + 002F, U + 00AF, U + 005C)입니다. - 매끄러운 외관을 보장하기 위해, 어떤
¯
이상이/
a로 따라야합니다¯
또는\
- 매끄러운 외관을 보장하기 위해, 어떤
_
이상이\
a로 따라야합니다_
또는/
- 위의 두 규칙은 사다리의 가장자리에도 적용됩니다
- 위의 세 가지 규칙은 사실상 호의 첫 번째 문자는
_
또는 이어야/
하고 마지막 문자는_
또는 이어야합니다\
(\¯\_//
양쪽에서 유효하지 않지만\_/¯\/
괜찮음). - 주어진 지점에서 각각의 허용 가능한 캐릭터가 나타날 확률이 0이 아니어야합니다.
- 각 호는 다른 모든 호와 독립적입니다.
생기
단일 호의 수명은 1 행에서 시작하여 상단에 도달 할 때까지 한 번에 한 행씩 "이동"하여 생성됩니다. IE의 경우 먼저 행 1에서 원호를 생성 한 다음 다시 스페이스로 설정하고 행 2에서 원호를 생성합니다. 표시 할 다수의 아크가있는 경우 ( N ) 다음 지침을 사용하여 한 번에 하나씩 많은 아크의 수명을 보여주십시오.
- 한 번에 하나의 아크만 "작동"해야합니다. 다음 호는 현재 호가 맨 위에 도달 한 다음 꺼질 때까지 시작할 수 없습니다.
- 호 수명의 각 행은 정확히 한 프레임 동안 표시되어야합니다.
- 새로운 호가 시작되기 전에 (호가없는) 기본 사다리의 한 프레임이 있어야합니다 (첫 번째 호 전에 선택 사항)
- 애니메이션에는 N 호의 전체 수명이 표시되어야합니다 . 경우 N은 0 = 중지 될 때까지 영원히 임의 호에 애니메이션을 적용해야한다.
- 경우 N > 0, 당신은 영원히 루프 애니메이션을 여전히 수도 있지만, 반복해서 같은 아크의 루프해야합니다. (이 게시물의 상단에있는 예제 GIF는 H = 6이고 N = 3이지만 영원히 반복됩니다.)
- 애니메이션이 제자리에 있어야합니다. 즉, 각 프레임은 다음 프레임을 완전히 덮어 쓰고 동일한 위치에 있어야합니다.
- 각 프레임의 길이는 원하는대로 할 수 있지만 사람이 볼 수있게합니다 (IE, 상식을 사용하십시오 : 0.01s / frame과 30s / frame은 모두 허용되지 않습니다).
입출력
- 입력 및 출력은 모든 표준 형식 일 수 있습니다
- GIF를 내보내고, 화면에 텍스트를 쓰거나, 각 프레임마다 단일 파일을 출력하거나, 다른 합리적인 수단을 사용할 수 있습니다
- 표준 허점 은 금지되어 있습니다
- 사다리 H 의 높이는 양의 정수입니다.
- N 을 나타내는 호의 수는 음이 아닌 정수입니다.
- H 와 N 은 모두 원하는 순서대로 입력으로 사용됩니다 (답에 주문을 포함하십시오)
승리 조건
이것은 코드 골프 이므로 가장 짧은 코드가 승리합니다.
the first character in the arc must be _ or / and the last character must be _ or \
하고 There must be a non-zero chance for each allowable character to occur at a given point
. 대칭이 되려면 첫 번째 문자와 마지막 문자가 모두 _
매번 되어야 합니다. 즉, /
`\`가 발생할 가능성이 전혀 없습니다 .