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