旋转/移动对象
本文关键字:对象 移动 旋转 | 更新日期: 2023-09-27 17:56:47
我有一个不太确定从哪里开始寻找的情况。在过去的四个小时里,我一直在寻找,但我找不到任何可以做我想做的事情。
我有八个对象控制单个灯光。当事件发生时,我生成它的 ID,将该值存储在第一个可用对象中,然后启动一个方法。我还将 ID 存储在列表中,并将对象编号与该列表的索引号匹配。我想做的是让这八个对象更新和旋转,具体取决于是否从列表中删除了匹配的项目。
示例:八个对象中有五个处于活动状态,我从列表中删除了一个索引为 0 的项目。对象 0 停止,然后对象 1 移动到对象 0,然后移动到对象 1,3 移动到 2,依此类推。
所以我的问题是我应该查找哪些术语来帮助我实现这一目标?我对 c# 比较陌生,根据我今天的研究结果,我只想知道什么是正确的问题。
如果我想做的事情是不可能的,那就这么说吧,我会想出一个更简单的程序。或者,如果你有解决这种情况的方法,我全听。
我认为你只是在描述一个[堆栈数据结构](https://en.wikipedia.org/wiki/Stack_(abstract_data_type)。 检查一下,看看它是否是你要找的。
堆栈不会"旋转"对象,但是当您删除顶部项时,所有其他项的"索引"将如您所描述的那样递减。 在您的示例中,似乎列表最终会变为空(在 8 个事件之后),这与堆栈一致 - 但不清楚为什么会调用此轮换。
如果要查找堆栈,则 BCL 会定义一个可以执行此操作的通用Stack<T>
。 使用 Push()
操作将项添加到堆栈中,此操作的副作用是递增结构中所有其他项的索引。 双Pop
操作从集合中删除顶部项,并递减其他项的索引,如您所描述的。