ヘプタモンド・パズルを解く（DLX package 使用）

[ヘキサモンド・パズルを解く（DLX package 使用）](https://qiita.com/masa0599/items/c451eae9065471d3c262)ではヘキサモンド・パズルをExact cover問題としてPyPIのDLX packageを用いて解く方法を紹介しました。
今回は最高難度の[テンヨー(Tenyo) ヘプタモンド 脳ブロック 永久に遊べるパズル 難易度5 総数10万通り以上](hhttps://www.amazon.co.jp/%E3%83%86%E3%83%B3%E3%83%A8%E3%83%BC-Tenyo-TBB-03-%E3%83%98%E3%82%AD%E3%82%B5%E3%83%A2%E3%83%B3%E3%83%89-%E8%84%B3%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF/dp/B07SQPHSVQ?th=1)に挑戦します。

### ヘプタモンドとは

[ポリアモンド（Wikipedia）](https://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%AA%E3%82%A4%E3%82%A2%E3%83%A2%E3%83%B3%E3%83%89)に簡単な説明がありますが、7個の正三角形をつなげた図形でピースは24種類、回転・鏡映で向きを考慮した種類は250個ということです。

### ヘプタモンドのピース

まず24個のデータを作り前回と同様に以下の変形を行い、重複を検知してデータを作ります。ピースの名前はやはり[An Introduction to Polyiamonds](https://puzzler.sourceforge.net/docs/polyiamonds-intro.html)を参考にしました。

* 回転は(0,120,240)の3通り
* 鏡映はなし・上下・左右・上下左右の4通り

ヘキサモンドと同じコードで250個の向きを考慮したデータを作ることができました。

|ピース名 | 画像| 種類（回転・鏡映）|
|:---:|:---:|:---:|
|A7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/bd621bd2-5163-4407-996b-d51aa836e29d.png" width=30%> |12|
|B7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/4494179e-49f7-4cbb-8fa5-ccd7ebc7d24f.png" width=30%> |12|
|C7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/c21e834d-83fd-4dc9-bd90-ed4dc8510cb9.png" width=30%> |6|
|D7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/9be2ab5d-2cd5-4e05-b3b6-18a219d72e83.png" width=30%> |6|
|E7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/242a86c0-b105-489f-aeba-9cdf6a93a11a.png" width=30%> |12|
|F7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/75fad1ca-91c4-4a68-8e03-f99b19010ceb.png" width=30%> |12|
|G7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/94017553-14cd-4e76-acb0-f998821f0c30.png" width=30%> |12|
|H7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/59e04afd-3f2c-40ae-86fb-1296446b6a13.png" width=30%> |12|
|I7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/98de8487-dc5c-4a43-b18f-cfb51390a5e8.png" width=30%> |6|
|J7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/d07d0116-45dc-4363-86d4-5d81d59e0975.png" width=30%> |12|
|L7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/0c50a8b2-0a97-442d-99dd-032b97d09d68.png" width=30%> |12|
|M7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/2a9e3fa8-22ad-4eed-a6c2-b192b2c81172.png" width=30%> |6|
|N7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/35fd64f2-991e-4c1e-af76-238e160d266e.png" width=30%> |12|
|P7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/5d028e51-6943-4b62-97c0-6f3038a9808b.png" width=30%> |12|
|Q7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/08b8e46e-28f2-46c2-9c01-9c9f1e3169ed.png" width=30%> |12|
|R7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/23dd2545-d8ab-45c1-b5d9-e014ae3cc05e.png" width=30%>|12|
|S7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/8330f4e2-0f18-4308-91d0-9ef40ce672e6.png" width=30%> |12|
|T7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/fd155f6d-1a5d-45b1-b041-7225a9c75825.png" width=30%> |12|
|U7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/5921e8d7-9627-4ea5-9d76-abb13a5afe47.png" width=30%> |12|
|V7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/edf10a78-b335-4c53-b9f0-47a70e2a7c22.png" width=30%>|6|
|W7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/17d0e26a-7271-49eb-8d65-8e4dc71c527f.png" width=30%> |4|
|X7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/e4e9645c-fa22-49a1-9ef7-13443a9720d5.png" width=30%>|12|
|Y7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/1dfb2f83-21a6-4f91-afbe-4e819c095ec1.png" width=30%> |12|
|Z7|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/e1485d03-8e2d-47c9-b94e-27d2a8059e35.png" width=30%> |12|

### ボードの構造

ボードのセル数は$7 \times 24=168$とかなり大きいですが同じ形が6個回転対称なので、一つを作って回転して作りました。

|ヘプタモンド・パズルのボード |
|:---:|
|<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/ac574607-6ce3-407e-a808-f055bca85bef.png" width=60%>|

### テンヨー ヘプタモンド・パズル を解く

すでにピースとボードのデータが出来たので。前回と同じコードで答えが出ました。ただし処理時間は増えているので。1万通りを超える全解答を求めるのは無理でした。25個の解答例を表示します。

|ヘプタモンド・パズルの解答例 |
|:---:|
| <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/65456f1f-724d-4410-9985-78f184e4670f.png" width=100%>|

### いろいろなボードのヘプタモンド

同じサイトの[Heptiamonds: Puzzles & Solutions](https://puzzler.sourceforge.net/docs/heptiamonds.html)には数多くのヘプタモンドが掲載されています。そのうちいくつかを作成して解答を１つ求めて以下に表示します。

| | |
|:---:|:---:|
|7x12 |6x14 |
| ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/1cd52bf3-da1f-4b74-99a7-b1be252011a3.png)|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/14ec8924-167f-4dd2-9b2b-4b0000315d3a.png)|
|7x12 |3x28 |
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/c5002da3-0db9-4f56-90a9-40577ccc68e2.png) |![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/ac7d3188-08a8-479c-8a50-6dcc08096374.png) |
|Exploded view of Snowflake 1 |Snowflake 1  |
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/d42b01ac-4a7a-4e1c-a8c8-9fa01af86803.png) |![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/fc474c96-0f69-443b-912c-3b2130e30503.png)|
|Snowflake 2 |Snowflake 3 |
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/34ad4622-5833-427e-8e37-d63ad85e4cb3.png)|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/1d6bb3b7-5a71-4fdc-a993-81094f705205.png) |
| Triangle 1 | Triangle 2|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/89fb9710-19b1-43fa-8e0c-cd2345aeeb9c.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/26205290-68bd-477d-9354-3a2d813bbdb6.png)|
| Hexagons 1 |Hexagons 2 |
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/8a90e9d5-74b5-471c-8f21-f8af5e22ca5a.png) |![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/e73b11a5-8339-4ccc-9a47-09f0ff99eea2.png) |
|Trefoil: |Hexagrams |
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/d928e04c-4fae-4602-92bb-3287d48308ac.png) |![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/22e26fc6-859d-4dbc-9d97-fe4bdd4a7d8e.png) |