【发布时间】:2015-05-31 09:07:56
【问题描述】:
假设我正在编写一个冒险游戏。该地图由不同类型的瓷砖组成。我有形成路径的瓷砖,以及形成门的瓷砖,等等。
我将使用一个结构来描述一个图块的类型和内容,以及它连接到哪些其他图块。
然后我将创建一个四重链表将它们连接在一起。
但是一个描述房间的结构体将比描述门的结构体包含更多的元素,所以一个门结构体中的许多元素都是多余的。我可以制作一个较小的门结构,但结构只能指向相同类型的结构*,所以我无法将房间结构连接到门结构。冗余可能可以忽略不计,但我想知道是否还有其他方法。
另一种选择是使用结构数组,但是我会有很多“填充”结构浪费更多空间。但是,数组会使从文件中读取和重新构建地图变得更加容易。
有什么办法可以绕过结构只能指向同类型结构的限制吗?还是我没有提到这个问题的另一种常见解决方案?
我的一个想法是每个图块都可以有指向其他所有类型图块的指针。有些可能是多余的,但与上面的选项相比,它的冗余度会更低。
*我的意思是,通常在链表中,结构包含指向与其所在类型相同的结构的指针。
【问题讨论】:
-
结构可以指向任何类型的对象。为什么说它们“只能指向同类型的结构”?
-
@Marc 通常在链表中,每个结构都有一个指针,指向它所在的相同类型的结构。我正是这个意思。就我而言,我有不同类型的结构。