行列を使うためにライブラリを読み込みます。そのピースを構成する小立方体の座標の配列で保持します。そのピースを構成する小立方体の座標それぞれに適切な回転行列を左からかけることで行います。それを実現する回転行列を求める必要があります。回転させる行列を用意します。回転の組み合わせで実現できます。具体的には以下の通りです。個の回転行列を計算します。3)endこれで準備は整いました。パズルを解かせるプログラムを書いていきましょう。愚直な方法でやろうと思います。これは一番早くないと思います。ピースが特定の場所に置けるかどうかを判定するメソッドを作ります。回転と平行移動を施したときにそのピースを構成する小立方体が全て空いている座標に入るかを判定させます。置けるならそれを置いた後に空いている座標の配列を返させます。new_cellsendこのメソッドを使ってパズルを解きます。そのピースが全て置けるかどうかを判定するメソッドを作ります。