def make2d(h,w) make2d=Array.new(h) for i in 0..(h-1) make2d[i]=Array.new(w) for j in 0..(w-1) make2d[i][j]=0 end end make2d end def hanoi(n) a=make2d(3*(n+2),10*n) b=n for i in 1..n for j in 3*i..3*(i+1) for k in 2*b-i..2*b+i a[j][k]=1 end end end show(a) hanoi_tower(n,0,3,6,a,b) end def hanoi_tower(n,x,y,z,a,b) if n>=0 then hanoi_tower(n-1,x,z,y,a,b) for i in 3*n..3*(n+1) for j in (x+2)*b-n-1..(x+2)*b+n+1 a[i][j]=0 end end show(a) gets() for i in 3*n..3*(n+1) for j in (y+2)*b-n..(y+2)*b+n a[i][j]=1 end end show(a) gets() hanoi_tower(n-1,z,y,x,a,b) end end