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