특정 그리드 크기 (4x4는 좋은 크기)의 모든 고유 한 크로스 워드 퍼즐 그리드를 생성하고 싶습니다. 고유하지 않은 퍼즐을 포함하여 가능한 모든 퍼즐은 격자 영역의 길이 (4x4의 경우 16)로 이진 문자열로 표현되므로 가능한 모든 4x4 퍼즐은 범위 0에있는 모든 숫자의 이진 형식으로 표시됩니다 ~ 2^16.모든 고유 한 크로스 워드 퍼즐 그리드 생성
이러한 생성 방법은 간단하지만 유효하지 않은 중복 사례를 프로그래밍 방식으로 제거하는 방법에 대한 좋은 해결책이 있다면 궁금합니다. 예를 들어, 단일 열 또는 단일 행을 가진 모든 퍼즐은 기능적으로 동일하므로 8 가지 경우 중 7 가지를 제거합니다. 또한 십자말 퍼즐 규칙에 따르면 모든 사각형은 인접해야합니다. 모든 중복 구조를 제거해도 성공했지만 솔루션을 실행하는 데 몇 분이 걸렸으며 이상적이지는 않았습니다. 내가 contiguity을 감지하는 방법에 대한 손실의 무언가에있어 만약 누군가가 이것에 대한 아이디어를 가지고 있다면 그것은 많이 감사 할 것입니다.
나는 파이썬으로 솔루션을 선호하지만 선호하는 언어로 작성합니다. 누구든지 원한다면 파이썬 코드를 게시하여 모든 그리드를 생성하고 중복을 제거 할 수 있습니다.
사각형이 "덩어리로 뭉치면"됩니까? 예 : 65535 (모든 사각형 사용) 유효한 4x4 그리드입니까? – doublep
@ douplep : 그것은 defintely 유효한 그리드입니다. 그래도 당신이 의미하는 바를 잘 모르겠다. 연속 규칙은 모든 유효한 그리드가 함께 뭉쳐야한다는 것을 의미한다. – heydenberk
또 다른 질문 : 단일 열은 단일 행과 같습니다. 나는. 서로의 회전/반향이 같은 두 개의 그리드입니까? – doublep