我正在将游戏作为一个班级项目进行工作,有人建议我使用 Graph ADT 来表示世界地图上的一组领土,这样每个顶点都是一个领土,而边代表玩家的相邻领土之间可以移动。我为 Graph ADT (JGraphT) 找到了一个很好的 Java 库,但我完全不知道边缘应该是什么类型......
例如,Graph<V,E>
界面清楚地要求我为顶点定义一个对象类型(我认为使用我的Territory
类型非常有意义)但是边应该是什么?我想不出任何可以用作边缘的对象类型。
jgrapht 库包含一个边缘类型,DefaultWeightedEdge
如果您需要边框权重(用于距离等),则称为边缘类型。否则,您可能只使用DefaultEdge
该类。
这是一个更实际的答案,即这些是 jgrapht 中适合您目的的实际类。如果您正在寻找一个更具概念性的答案,我认为 peter.petrov 关于 Border 类的答案几乎是正确的。
好吧,例如:
(1)
public class Border {
// ... put here anything that's useful
// e.g. length of border or type of border (land,sea,river)
}
边缘实际上是两个领土之间的边界。
所以对我来说,成为Border类的优势是有道理的。
另一个想法:
(2)
public class Distance {
// ... put here anything that's useful
// e.g. the distance between the two capitals
}
我通常在脑海中表示这些图,就好像顶点是首都一样,边缘是首都之间的道路(我的意思是任何两个毗邻的州/领土)。