에서 내 이전 문제 , 나는 주로 손으로 (정력의 시각 블록 모드의 도움으로) 첫 번째 그림을 그렸습니다. 그러나 더 좋은 방법이 있어야합니다 ...
너비와 높이의 두 가지 차원을 입력하면 ASCII 기술에서 해당 차원을 가진 6 각형 격자를 출력합니다.
다음은 인트로에서 참조 된 다이어그램 (사소한 편집)이며 입력에 대한 출력이어야합니다 width=7, height=3
.
_____ _____ _____
/ \ / \ / \
_____/ -2,-1 \_____/ 0,-1 \_____/ 2,-1 \_____
/ \ / \ / \ / \
/ -3,-1 \_____/ -1,-1 \_____/ 1,-1 \_____/ 3,-1 \
\ / \ / \ / \ /
\_____/ -2,0 \_____/ 0,0 \_____/ 2,0 \_____/
/ \ / \ / \ / \
/ -3,0 \_____/ -1,0 \_____/ 1,0 \_____/ 3,0 \
\ / \ / \ / \ /
\_____/ -2,1 \_____/ 0,1 \_____/ 2,1 \_____/
/ \ / \ / \ / \
/ -3,1 \_____/ -1,1 \_____/ 1,1 \_____/ 3,1 \
\ / \ / \ / \ /
\_____/ \_____/ \_____/ \_____/
몇 가지 사항에 유의하십시오.
너비와 높이는 기본적으로 주어진 y 및 x 좌표에 대해 육각형이 몇 개인 지에 해당합니다. 이들은 항상 홀수입니다.
각 육각형은 ASCII 기술로 표현됩니다.
_____ / \ / \ \ / \_____/
그러나 인접한 육각형간에 경계가 "공유"됩니다.
좌표의 쉼표는 항상 상단 가장자리 중심 아래에서 정확히 두 문자입니다. 그런 다음 x 좌표는 쉼표 바로 앞에, y 좌표는 바로 뒤에 위치합니다.
좌표가 육각형 테두리와 겹치지 않도록 절대로 클 수는 없습니다.
입력은 공백 / 쉼표로 구분 된 문자열, 정수 배열 또는 두 개의 함수 / 명령 줄 인수로 사용할 수 있습니다. 출력은 단일 문자열이어야합니다 (STDOUT에 반환 값 등).
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 승리합니다.
위의 그리드는 테스트 케이스로 사용할 수 있습니다. 최대 크기의
width=199, height=199
그리드는 여기에 포함하기에는 실용적이지 않지만 처음 몇 개의 행과 열은 다음과 같아야합니다.
_____ ___
/ \ /
_____/-98,-99\_____/-96,
/ \ / \
/-99,-99\_____/-97,-99\___
\ / \ /
\_____/-98,-98\_____/-96,
/ \ / \
/-99,-98\_____/-97,-98\___
\ / \ /
\_____/-98,-97\_____/-96,
/ \ / \
/-99,-97\_____/-97,-97\___
\ / \ /