s@[TOC]Unity自学之汉诺塔(4)——分辨大小
Unity自学之汉诺塔(4)——分辨大小
上一篇我们找到了Transform属性,用到了刚体(Rigidbody),让我们的盘子能够动起来了,而且添加了目标位置物体,让盘子能够移动到指定位置。现在我们看看怎么解决大盘子不能压在小盘子上以及每次只移动柱子最上方的盘子的问题。
只移动柱子最上方的盘子
每次进出都是最上方的盘子,这个情况有没有点熟悉的味道,回想一下上学时候学的数据结构,一种特殊的结构能够满足我们的需求。栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。(这段话来自百度百科)
这下明白啦,我们的每根柱子其实就是一个栈结构。
public static Stack<int> stackA &