用python实现汉诺塔,遇到的一些问题?

img
为什么划红线的x,y,z位置会发生变化,不理解为什么会变化

.
.
.
.
.

img
这个画红线的都是参数吗

这个代码很巧妙,主要是运用了递归的思想。首先关于汉诺塔的解决思路,我们把三根柱子分为初始位、过渡位、目标位,注意它们是相对的,不是绝对的。在这一题中,x, y, z代表的并不是三根柱子,而是这三个位。在函数中也是,x, y, z三个参数分别表示初始位、过渡位、目标位,同时我们将三根柱子分为1,2, 3。总的来说,1是初始位,3是目标位。第一步我们需要将初始位上的共(n-1)层挪到2上,即把除最底层的其余的都挪过去,这时候2是目标位,3是过渡位,所以参数排列为x,z,y。然后再把最后一层挪到3,这时候就在3积累了一层了。最后要把剩余的全部挪到3,递归,照着上一步的思路,此时2是初始位,3是目标位,所以参数排列为y,x,z。不断递归,慢慢一层一层搭上去,在3不断积累,达到把全部挪过去的效果。
由于三个位是相对的,所以位置发生变化。
如果有用,望采纳!
如果还有疑惑,再来问我。