ハノイの塔課題を遊ぶ関数 hanoi
タイトルのまんま、ハノイの塔課題を遊ぶ関数です。塔の段数を引数として実行すると、コンソールでハノイの塔課題をプレイできます。
「なぜわざわざRでそんなことwww」って?
そこにRがあるからです。
> hanoi(3)
1
2
3
-------
Z X C
下部のZ・X・Cが、塔をたてる3つの場所にあたります。
そのうえに書いてある数字が、塔のパーツ(ディスク)です。
小さい数字ほど、小さいディスクを意味しています。
ゲームの目的は、塔の位置をZからCへ動かすこと。
「どこから」「どこへ」動かすのかをZ・X・C(小文字でもOK)のキー押しによって選択し、ゲームを進めていきます。
(Z・X・Cは、キーボードの左下3つです。)
ただしディスクは、それ自身よりも小さいディスクの上には載せることができません。
つまり塔は、つねに先細りになってないとダメ。
FROM : z
TO : c
2
3 1
-------
Z X C
FROM : z
TO : x
3 2 1
-------
Z X C
「どこから」「どこへ」の一方ないし両方を空欄にすると、"
Retire?
"と聞かれ、ここで"Y
"または"y
"を選ぶと終了します。(もちろんRプログラムなので、Escキーでも終了できます。)
また以下のような入力は無効になります。
・「どこから」と「どこへ」が同じ場所
・Z・X・C以外の文字を選択した
ホントに思いつきなので、あしからず。
■更新履歴■
09.04.08 ver.1.00