はじめに この記事はSpeedcubing Advent Calendar 2019の17日目の記事です。 [連載]ルービックキューブを解くプログラムを書いてみよう(前編) の続きをやっていきます。 前編では、ルービックキューブの状態/操作を表現するクラスを作り、状態を操作するメソッドを書きました。 これで、キューブをプログラム的に自由に回せる状態になったので、探索を進めていきましょう。 中編では単純な総当りで探索するので、計算量的な問題でまだ任意の状態のルービックキューブの解を見つけられるようにはなりませんが、ピラミンクスや2x2x2キューブなどの小さいパズルならこの方法でも解くことができます。 追記: 後編を書きました ルービックキューブを解くプログラムを書いてみよう(後編:状態のindex化, Two-Phase-Algorithm) 環境 環境については、前編と同様Python3.