見出し画像

フレームハノイ その2

みなさんこんにちは。カレンダーウォッチャー開発担当(兼CEO)の鈴木です。前記事で表明したように一応何かを作るという意思はあります。動機についてはもちろん事業活動の一環としての名目があるにはありますが、それより、なんというか今自分が置かれている影絵のような世界から抜け出したいという欲求が大きいです。どういう意味なのかについて詳しくは説明しませんが、とにかくそういうことです。察してください・・・。

ハノイの塔

では本題に移ります。まず何から作ることにしたのかですが、前々から構想していたハノイの塔からからやってみようということになりました。ハノイの塔というのは、ご存知のとおり古より伝わるパズルのことで、3本あるポールのうちのどれか一つにスタックしているリング(あるいは円盤)をすべて、別のポールへ移し替えるというゲームです。ただリングには大小関係があって小さいリングの上に大きいリングを置くことはできないというルールがあります。私は昔からこのゲームのアルゴリズム的要素が好きで、リングの個数$${n}$$に対して、手順が$${2^n -1}$$回であることを姉に説明して得意げになったりしていたなんていう思い出があります。それはさておき、なぜ今それを作るのかというと、前作で培った技術が応用できそうだと思ったからです。

スタック構造

前作以降少しの合間を経て、今ではとりあえず何かを作ろうという気にはなってはいますが、とくに技術的スキルや知識を持ち合わせているわけではないので、できることは限られている。手持ちのものとしては3DCADと3Dプリンターをちょこっと扱える程度です。(ちなみにこれは謙遜ではありません)

それでも前作でスタック構造に関しては少々経験を積むことができたという自負はありました。具体的には、前作では各ピースは底が抜けたカップを上下逆さまにしたような形をしており、それらを上に積み上げていくという構造でした。それに対してハノイの塔というのは各ピースは上述のとおりリングというか円盤のような形をしており、中心にポールが貫通するような仕様となっていて、積み上げるときは単純にポールにリングを通して下に落としていくだけです。それぞれ方法は異なりますが、スタック構造であるという点では一致するので、前作の方法を伝統的なハノイの塔の構造に適用したらどうなるかというのが、今回構想中のプロジェクトの主眼となっております。つまりポールなしのハノイの塔を設計したいと思っています。ただ、その場合伝統的ハノイの塔にあった、後入れ先出しの原則はゆるくなってしまう恐れがあります。

とりあえずやってみる

というのも、伝統的なハノイの塔では、ポールおよび円盤という物理的な制約があるために、後入れ先出しの原則が守られていました。つまりプレイヤーが塔にピースを加えるときは一番上に積み上げることしかできなくて、一方で取り出すときは一番最後に加えた最上階のピースからしか取り出すことはできない、そんなしくみが働いていました。ところが逆さまカップ式だとそのあたりがあいまいになります。はたしてこれでハノイの塔と呼べるのか?そもそもスタック構造なのか?厳密に考え出すと厄介なので、その点はあまり深く考えないで進めていこうと思います。

今去来するのはこんな言葉・・・

狂者は進みて取る

論語(子路十三)より

・・・しかし愚者は進みて落ちる。

(次回へ続く)

この記事が気に入ったらサポートをしてみませんか?