金沢近代美術館に行ったときに買った昴くんへのお土産「スネイクキューブ」

こんなやつです。3ブロックもしくは2ブロックの立方体がゴム紐でつながっています。

 

AI時代も到来ということで最近 Python (パイソン)始めました。ちょうどPythonの練習にいいかと思ってプログラムを書きました。ただし全然AIは関係ありません。どんな言語でも書けますが、Python 使ってみたというだけです。

 

リストや連想記憶やタプルなんかが実装されているのと、これらコレクションのパックやアンパックが簡単なのもいいです。

リカーシブ(再帰呼び出し)な関数ひとつ書いて、メインから呼んで一瞬で終了。記述は半日、実行は1秒という感じです。

多次元配列の初期化方法で少しつまづきました。

 

 

 

 

 

 

結果は4つで予想通り、立方体の回転によって一致するものが2つずつあり、鏡像2つが最終的な解になりました。

鏡像も同じと考えれば解は1つになります。

 

 

 

 

数字列を図示。4つの解。

 

同じものを取り除くとこの2つが鏡像で残る。実際にパズルを手にしたらこの2通りが作れます。

 

コツは3-3-3-3と始まるほうからではなく、3-2-2-3と始まるほうを掴んで2回目の3が最終形の中心を通るように配置することです。