解答です
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];
}
else if (src==bou[1]){
if (dst==bou[0]) tmp=bou[2]; else tmp=bou[0];
}
else {
if (dst==bou[1]) tmp=bou[0]; else tmp=bou[1];
}
if (n > 0){
idou(n-1,src,tmp);
dst.pile.add(src.pile.removeLast());
for(Bou b: bou) System.out.println ( b );
System.out.println ();
idou(n-1,tmp,dst);
}
}
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