我将直接从示例开始:
在游戏中,玩家将使用一个袋子来存放他们的物品(物品的尺寸可变),并且袋子的尺寸也可变。
在一个 8x15 插槽的袋子中,我需要插入一个占用 2x2 插槽的项目,我可以搜索空间以实际检查是否有足够的空间来存储该项目 - 这很容易,但是,如果我没有足够的空间怎么办存储请求项目的空间?这是真正的问题。
我正在尝试找到一种方法来实际重新排列当前包中的所有当前项目,以便为新项目释放空间。
有什么算法可以帮助我做到这一点吗?
编辑
规则:
- 我无法移除包中的任何现有物品,如果没有足够的空间,只需重新排列它们以便存储新物品。