도전
프로그램 또는 함수는 STDIN 또는 함수 매개 변수에서 단일 문자열 입력을 허용합니다. 입력에 영문자 (a-zA-Z), 공백 및 전체 정지 만 포함한다고 가정 할 수 있습니다. 입력은 대소 문자를 구분하지 않으므로 'A'를 처리 할 때와 동일하게 'a'를 처리해야합니다.
문자열의 각 문자에 대해 다음 사양에 따라 건물의 표현을 출력합니다.
각 건물에는 맨 위 줄에 밑줄로 지정된 지붕이 있어야하고 두 번째 줄에는 슬래시, 공간, 백 슬래시가 있어야합니다.
_
/ \
그런 다음 문자 수 (a = 1, b = 2, c = 3 등)와 일치하는 여러 층을 가지게되는데, 각면에는 벽 (|)과 중간에는 공백이 표시됩니다. 맨 아래 층 (및 맨 아래 층만)에는 벽 사이의 밑줄 인 기초가 있어야합니다. 이렇게 ...
|_|
예를 들어 'b'는 다음과 같습니다.
_
/ \
| |
|_|
이제 우리는 매우 키가 크고 좁은 건물은 기슭에 서있을 수없고 더 넓어야합니다. 따라서 어떤 추가 지원 없이도 3 층 이상의 높이에서는 건물이 없습니다. 따라서 세 가지 수준 (또는 그 이하)마다 '확장 레이어'를 추가해야합니다. 확장 레이어는 그 아래 섹션의 벽 바로 위의 슬래시와 백 슬래시로 구성되며 아래 섹션은 위 섹션보다 두 칸 넓어야합니다. 추가 층은 건물 높이에 포함되지 않습니다.
건물은 겹치지 않아야하고 건물 사이에 불필요한 공간이 없어야하며 바닥은 항상 평평하므로 모든 건물의 바닥은 같은 수준이어야합니다.
예를 들어, 'abcdefga'는 다음과 같습니다.
_
/ \
_ | |
_ / \ | |
_ / \ | | | |
/ \ | | | | / \
_ | | | | | | | |
_ / \ | | | | / \ | |
_ / \| | | | / \| | | | _
/ \| || |/ \| || |/ \/ \
|_||_||_||___||___||___||_____||_|
문자열 입력의 공백은 이중 공백으로 표시되어야합니다.
문자열 입력의 전체 정지는 다음과 같이 잔해로 표시되어야합니다.
/\/\
추가 예
입력 = Hello world.
출력 =
_
/ \
| |
| |
| |
/ \
| |
| | _
| | / \
/ \ | |
| | | |
_ | | _ | |
/ \ | | / \ / \
| | / \ | | | |
| | | | | | | |
_ _ | | | | | | | | _
/ \ / \ / \ | | / \ / \ / \
| | | | | | / \ | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
_ / \ / \ / \ | | / \ / \ / \
/ \ | | | | | | / \ | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | _ / \ / \ / \ | | / \ / \ / \
/ \ / \ | | | | | | / \ | | | | | | _
| | | | | | | | | | | | | | | | | | / \
| | | | | | | | | | | | | | | | | | | |
| | | | / \/ \/ \ | | / \/ \/ \ | |
/ \/ \| || || | / \| || || | | |
| || || || || | | || || || |/ \
|_____||___||_______||_______||_________| |_______________||_________||___________||_______||___|/\/\
입력 = lorem ipsum
_
/ \
_ | |
/ \ | |
_ | | | |
/ \ | | / \
| | _ | | | |
| | / \ / \ | |
_ | | | | | | | |
/ \ / \ | | | | / \
| | | | _ | | | | | | _
| | | | / \ / \ / \ | | / \
_ | | | | | | | | | | | | | |
/ \ / \ / \ | | | | | | / \ | |
| | | | | | | | | | | | | | | |
| | | | | | / \ / \ / \ | | / \
| | | | | | | | _ | | | | | | | |
/ \ / \ / \ | | / \ | | | | / \ | |
| | | | | | | | | | | | | | | | | |
| | | | | | / \ | | / \ / \ | | / \
| | | | | | | | | | | | | | | | | |
/ \ / \ / \ _ | | / \ | | | | / \ | |
| | | | | | / \ | | | | | | | | | | | |
| | | | | | | | / \ | | / \ / \ | | / \
| | | | | | | | | | | | | | | | | | | |
/ \/ \/ \ | | | | / \ | | | | / \ | |
| || || |/ \ | | | | | | | | | | | |
| || || || |/ \ | |/ \/ \| |/ \
|_______||_________||___________||___||_________| |_____||___________||_____________||_____________||_________|
입력 = a.a.a.x.x.x.a.a.a
_ _ _
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
| | | | | |
| | | | | |
| | | | | |
/ \ / \ / \
_ _ _ | | | | | | _ _ _
/ \ / \ / \ | | | | | | / \ / \ / \
|_|/\/\|_|/\/\|_|/\/\|_______________|/\/\|_______________|/\/\|_______________|/\/\|_|/\/\|_|/\/\|_|
규칙
- 물론 이것은 코드 골프이며 바이트 단위로 가장 낮은 점수를 얻습니다.
- 표준 허점 규칙이 적용됩니다
- 출력 전후에 추가 빈 줄 수
- 전체 결과를 하나의 문자열로 출력하거나 각 요소가 한 줄의 출력을 나타내는 배열로 출력을 제공하거나 STDOUT에 보낼 수 있습니다.
노트
이것은 PPCG에 대한 첫 번째 게시물이므로 제발 쉽게 가십시오. 샌드 박스를 통과했습니다. 부정적인 점이나 가능한 개선 사항은 의견으로 게시하고 내가 할 수있는 일을 할 것입니다
[a,z], [1.26]부품은 Mego는 언급했다. 선택의 여지가 종종 최고입니다 (이것이 도전의 핵심 부분이 아닌 한)
[a,z]및[A,Z]것은[1,26]무의미한 요구 사항처럼 보인다. 목록 정수를 입력으로 사용하는 것이 훨씬 좋습니다 (0잔해에 대한 입력 이 있음). 또한, 한 명 이상의 사용자로부터 투표 나 피드백을 기다리지 않고 21 시간 동안 샌드 박스에 들어온 후 챌린지를 게시하는 것은 "샌드 박스를 통과 한"것으로 간주되지 않습니다. 샌드 박스에 최소한 48-72 시간 동안 문제를 남겨서 사람들이 검토 할 시간을 충분히주는 것이 좋습니다.