The Fool In The Valleyの雑記帳

-- 好奇心いっぱいのおじいちゃんが綴るよしなし事 --

EV3でハノイの塔を その5

前回、ハノイの塔のパズルを解くプログラムの基本アルゴリズムを実装し、検証してみましたが、下のような文字を出力するだけでは結果が正しいのかどうか見ても分かりにくいし、第一、面白くありません。

円盤 2 を柱 0 から柱 2 に移動する
円盤 1 を柱 0 から柱 1 に移動する
円盤 2 を柱 2 から柱 1 に移動する
円盤 0 を柱 0 から柱 2 に移動する
円盤 2 を柱 1 から柱 0 に移動する
円盤 1 を柱 1 から柱 2 に移動する
円盤 2 を柱 0 から柱 2 に移動する

そこで、PythonOpenCVで円盤を一枚動かすごとの状態の遷移を可視化してみました。

youtu.be

確かにこれで状態遷移は分かりますが、どの柱の円盤をどの柱に移動させたのか分かりにくいし、今一つ楽しさがありません。 そこで、円盤を移動元の柱から引き上げ、横に移動させ、移動先の柱に降ろす様子をアニメーションで表示し、動きが分かるようにしてみました。

youtu.be

これなら、動作がよくわかります。 円盤が何枚であってもこうしたアニメーションを作ることはできますが、それをここで表示するのはやめておきます。例えば円盤を20枚にすると完了させるのに要する手数は \displaystyle{
2^{20}-1
} なので、1手に要する時間を1秒としてもおよそ12日かかるからです。(笑)

EV3でハノイの塔を その4 ⇔  EV3でハノイの塔を その6


アイキャッチ画像 f:id:tfitv:20210225171203p:plain