도전
15/16 시즌 동안 첫 눈이 내리는 많은 곳에서 겨울이 빠르게 다가오고 있습니다. 그래서 스노우 머신을 분해하고 눈을 직접 코딩하지 않겠습니까?
n
STDIN을 통해 정수가 주어지면 ASCII 표현 Beta의 눈송이 (아래 설명 참조)를 level로 출력하십시오 n
.
베타의 눈송이
눈송이는 단일 x로 레벨 0에서 시작합니다.
x
그런 다음 각 모서리에 다음 모양 중 하나를 추가하십시오.
x
xx
위 모양을 오른쪽 상단에 추가합니다. 오른쪽 아래 모서리의 경우 시계 방향으로 90 °, 왼쪽 아래, 시계 방향으로 180 °, 왼쪽 위, 시계 방향으로 270 ° 회전합니다.
그렇게하면 다음과 같은 모양이됩니다.
x x
xx xx
x
xx xx
x x
도형의 방향에 유의하십시오. 계속해서 위에서 설명한 방향 규칙을 사용하여 각 모서리에 더 많은 모양을 다이어그램에 추가하여 레벨 2를 얻습니다.
x x x
xxxxxxx
xx x x xx
xxx xxx
xx x xx
xxx xxx
xx x x xx
xxxxxxx
x x x
셰이프는 x
둘 이상의 노출 된면 (위 모서리라고 함)이있는에 추가됩니다.
L 자형은 n
1보다 큰 값에 대해 겹치거나 겹칠 수 있습니다 . 예를 들면 다음과 같습니다.
레벨 0이 다음과 같은 경우 :
x x
그런 다음 레벨 1에 겹침이 있어야합니다 (로 표시되고 출력에 o
포함하지 마십시오 o
).
x o x
xxxoxxx
x x
xxxoxxx
x o x
당신의 임무는 베타 눈송이의 ASCII 표현을 출력하는 것입니다.
보너스
가장 짧은 프로그램의 경우 50 개의 보너스 보너스가 있으며, n
음수 인 경우 눈송이 (레벨 n*-1
)를 이미지로 또는 화면에 그래픽으로 출력합니다.
현상금 및 주요 작업에 대한 별도의 프로그램이있을 수 있습니다.
승리
바이트 단위의 최단 프로그램이 이깁니다.
2 or more exposed sides
규칙 을 명확히 할 수 있습니까 ? 센터 가정되는 0,0
다음 1,1
, 1,-1
, -1,-1
, -1,1
모든 2 개 노출 측면 (측면이 다른 4 점 향)이있다. 충전을 피하기 위해 3 + 개 방면이 아니어야합니까? 또는 0 또는 1 개의 이웃 (추기경)이있는 경우에만 확장됩니다.