import java.util.*; public class Hanoi6 { int maisuu = 3; Bou[] bou = { new Bou('A',maisuu), new Bou('B'), new Bou('C') }; public void idou(int n,Bou src,Bou dst){ Bou tmp; if (src==bou[0]){ if (dst==bou[1]) tmp=bou[2]; else tmp=bou[1]; } /* ここに src と dst に使っていない場所を tmp とするプログラムの続きを書く */ if (n > 0){ idou(n-1,src,tmp); /*addとremoveLast()を使って移動する 部分をここに書く */ for(Bou b: bou) System.out.println ( b ); System.out.println (); idou(n-1,/*よけていたものを戻す*/); } } public Hanoi6(){ for(Bou b: bou) System.out.println ( b ); System.out.println (); idou(maisuu,bou[0],bou[2]); } public static void main( String[] args ) { Hanoi6 hanoi = new Hanoi6(); } }
実行結果はこうなります
A:3 2 1 B: C: A:3 2 B: C:1 A:3 B:2 C:1 A:3 B:2 1 C: A: B:2 1 C:3 A:1 B:2 C:3 A:1 B: C:3 2 A: B: C:3 2 1