解答です
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