ExcelVBAでルービックキューブを揃える【使い方編】
ここでは、ExcelVBAで作ったルービックキューブ自動解答のプログラムの使い方について解説しています。
プログラムの内容や表記方法については、【プログラム編】を参照してください。
プログラムのダウンロード
こちらのExcelファイルは、サイズが約18MBになります。
設定
まずは、「設定」シートを確認してください。
ここでは、展開図の配色とランダムにシャッフルする回数をセット出来ます。

展開図の配色を変更する
展開図のセルの配色が、お手持ちのルービックキューブの配色と同じかどうかを確認してください。
デフォルトでは、国際基準の配色になっています。
日本基準のルービックキューブでは、黄色と青の面が逆になっています。
変更の仕方は、背景色を任意の色に変更します。
表示では、赤がピンク色になっていますが、これはオレンジ色と見分けにくいために変更しています。
色の明るさなど見やすいように変更指定ください。
変更後は、「自動解答」シートに移って、「Reset」ボタンを押せば配色が反映されます。
ランダムでシャッフルする回数を設定する
E9セル(灰色のセル)にランダムでシャッフルする回数を入力します。
あまり大きい数値を設定しても解法が複雑になっていくという事でもないので、20回程度で十分でしょう。
用途別の使い方
本プログラムでは以下の3通りの方法で使うことができます。
・ランダムでシャッフルして解答を得る
・シャッフルされた実際のルービックキューブの配色で解答を得る
・操作を記述してその通りに展開図に反映させる
ランダムでシャッフルして解法を得る
「設定」シートで指定した回数のシャッフルを行い解法を得ます。

1.「Random」ボタンを押してシャッフル
A2 に Random:[ , , , ] が表示されて、どのような操作をしたか示します。①’
途中、” F F “などと重複した操作も含まれることがありますが、これは単純にランダムで値を決めているためです。
結果が気に入らない場合は、「Random」ボタンを何度か押して変更しましょう。
2.「Search」ボタンを押して解答を得る
プログラムで解答を計算して、A3、A4に操作手順を表示させます。②’
ほとんどの場合、数秒で結果が出ますが、一応無限ループ防止のため 3分以上時間がかかる場合は、終了するか確認のダイアログが出るようにしています。
3.「検証」ボタンを押して結果を確認する
以下のようなユーザーフォームが出ますので、展開図が見えるように位置を移動します。

左側のリストボックスは 1工程ごとに並んできます。
一番上の “—” は何も動かしていない最初の状態となります。
リストボックスの選択と展開図の関係は、選択位置の操作を行った直後の状態が展開図の状態になります。
▼ボタンを一回押すと、 F2 が実行されて展開図が変化します。
ここで▲ボタンを押すと、1工程操作を戻します。動作としては、 F2 の反対動作である F2 が実行されたのと同じになります。
▼ボタンを押すたびにキューブが揃っていく工程を確認できます。
リストボックスの最後が選択された時が完成(全て揃った状態)となります。
「Start」ボタンを押すと、操作前の状態に戻ります。
「End」ボダンで完成した状態(最後の工程)に進みます。
リストボックスは直接選択できませんので、ボタン操作で上下させてください。
また、ユーザーフォームが出ている状態でシート操作はできません。
「閉じる」ボタンでユーザーフォームが閉じ、シートの展開図は、シャッフル後の状態に戻ります。
シャッフルされた実際のルービックキューブの配色で解法を得る
実際に何回かシャッフルしたルービックキューブをもとに、展開図を完成させて解答を得ます。
揃っていないルービックキューブを揃えるのにも使えます。
1.「Reset」ボタンを押して展開図を揃った状態にします
2.シャッフルされたお手持ちのルービックキューブの位置を確認する
シャッフルされたルービックキューブの位置を展開図に合わせます。
中央(センター)キューブは変化しないので、中央キューブの色を見て正面が「緑」、上面が「白」となるように持ちます。
(下面や他の面の中央キューブも揃うはずです。)

3.「InputColor」ボタンで配色します
「InputColor」ボタンを押すと以下のようなダイアログが出ます。

展開図を空白の状態にする場合は「はい」。
今ある展開図の配色を残したい場合は「いいえ」を押します。
以下のようなユーザーフォームが出ます。
以下は、「はい」を押して空白状態にした時の様子です。

灰色のセルに色を配置します。
配色はセルを選択した状態で、ユーザーフォームの色付きボタンを押します。
ユーザーフォームにある色付きボタンの下に数字がありますが、全て配色が終わると値は 8 になります。
8 より大きい場合は重複箇所があり、少ない場合は不足している事になります。

上の図はまだ未完成の状態です。
「無効色」ボタンで配色をキャンセルできます。

全ての配色が済んだら「登録」ボタンで展開図に値を反映させます。
不具合が無ければ以下のように値が全て配置されます。

不具合がある場合は、配色にミスが無いか確認してやり直してください。
ユーザーフォームの×を押せば途中で終了できます。
再度、「InputColor」ボタンから始める場合は、ダイアログで「いいえ」を選択すれば、それまでの展開図の配色が有効になります。
4.「Search」ボタンを押して解答を得る
設定した配色が認識されれば自動解答を実行できます。
「Search」ボタンを押せばプログラムで解答を計算して、A列に操作手順を表示させます。
プログラムの無限ループ防止のため 3分程度で終了するか確認のダイアログが出るようにしています。

5.「検証」ボタンを押して結果を確認する
ユーザーフォームが出ますので、▲▼ボタンや「Start」「End」ボタンで確認してください。
操作方法の詳細は、前述のものを参照してください。

※同じ面でも、” L ↓”, ” R↑ “のように操作(回転)正方向が逆になるので注意してください。
コツとしては、正面のセンターキューブ(緑)に親指を置いて持ち、一回づつ▼ボタンを押して、リストボックスで選択された工程を操作し、展開図と同じになるようにします。
操作を間違えると完成しませんので注意してください。
操作を記述してその通りに展開図に反映させる
A列に操作の値を「半角空白」で区切りながら記述する事で「検証」ボタンの操作が可能です。
2列以上になっても構いません。
ルービックキューブの研究用に、ある動作でどのような配色になるがを確認できます。

上記のようにA列に一連の操作を半角空白で区切って記述します。①
「検証」ボタンを押すとユーザーフォームが出て検証できるようになります。②

上の図は ” F B L2 U’ ” 動作のうち ” F “のみ操作した時の状態です。
このように操作によってどのように展開図が変化するかを確認できます。
便利な使い方
「自動解答」シートはコピーして複数あっても個別に動作します。
複数のケースを保存したい場合に便利です。

最後に
今回のプログラムは、実際のルービックキューブがシャッフルされた状態から完成までをExcelVBAでナビゲートできればと思い開発をスタートさせました。
調べてみると私のスキルでは非常に困難であることがわかりました。
参考にさせて頂いたサイトの説明や、私に多少のPythonの知識があったこともあって、何とか無事に公開することができました。
参考にしたサイトの方が、「コードはCC0ライセンスで扱っていただいて大丈夫」との事ですので、こちらもCC0ライセンス扱いとさせていただきます。
プログラムの不具合などは、メールでご連絡下さい。
くれぐれも参考サイトあてに問い合わせる事のないようにお願いします。
コメント