다음 13 개의 정사각형 왕 타일은 항상 평면을 비 주기적으로 타일링하는 것으로 입증되었습니다 . 즉, 사각형이 인접한 모든 변이 같은 색으로 격자에 배열되면 패턴의 변환이 절대 그 자체와 일치하지 않습니다.
가운데와 모서리에 공백으로 채워진 3x3 격자와 가장자리의 빨강, 녹색, 파랑, 노랑, 회색 대신 1 ~ 5의 숫자로 각 타일을 텍스트로 표현합니다.
2 2 2 1 1 1 4 3 2 2 4 3 2
1 2 1 3 2 3 2 1 3 1 3 2 4 4 4 4 4 5 4 5 5 5 5 5 5 4
3 2 3 2 3 2 1 2 1 4 1 2 2
골
당신의 임무는 너비와 높이를 차지하고 해당 크기의 유효한 왕 타일 그리드를 출력하는 프로그램을 작성하는 것입니다. 유효한 타일링은 모든 인접한 타일 가장자리가 동일한 색상 (또는 숫자)을 갖는 타일입니다. 바이트 단위의 가장 작은 프로그램이 이깁니다.
입력은 stdin 또는 명령 행 인수에서 가져오고 출력은 stdout으로 이동해야합니다. 정확한 입력 형식은 다음과 같이 합리적으로 명백 할 수 있습니다 >>> wangtiler 3 2
. 너비와 높이는 항상 양의 정수입니다.
예 (너비 = 3, 높이 = 2)
텍스트 타일을 레이아웃 할 때 인접한 가장자리는 필요한 중복 쌍을 형성합니다.
1 2 1
2 11 22 1
2 3 2
2 3 2
4 55 55 4
1 2 2
(올바른 출력 형식이 아닙니다.)
수평 및 수직으로 압축하여 다음을 얻을 수 있습니다.
1 2 1
2 1 2 1
2 3 2
4 5 5 4
1 2 2
이 압축 형식은 사용해야하는 올바른 출력 형식입니다. 홀수 번호의 행에는 후행 공백이 포함되어야합니다.
그래픽 보너스
텍스트 출력 대신 프로그램이 타일 그리드의 이미지를 출력 할 수 있습니다. 그래픽 타일은 사각형으로 배열 된 45-45-90 삼각형 4 개로 구성되어야하며 위의 타일과 같이 쉽게 구별 할 수있는 5 가지 색상을 사용해야합니다. 검은 색 테두리는 필요하지 않습니다. 그래픽 타일의 크기는 32 × 32 픽셀 이상이어야합니다. "압축"이 적용되지 않습니다.
보너스 이미지 예 : (위의 예와 동일한 그리드)
보너스는 150 바이트를 뺀 값입니다.
노트
- 이 13 개의 타일 세트를 사용해야합니다.
- 타일이 회전하지 않을 수 있습니다.
- 타일은 여러 번 나타날 수 있습니다 (아무 것도 포함하지 않음).
- 치수가 유효한 타일링이 가능하다고 가정 할 수 있습니다.