我提供了这种方法:
public void init(Logger logger, int playerID, int numWalls, Map<Integer, Coordinate> playerHomes){
//The graph I want to use
HashMap<Coordinate, HashSet<Coordinate>> graph = new HashMap<Coordinate, HashSet<Coordinate>>();
init
:将此方法视为构造函数(因此,您不应该使用构造函数,因为它不会被调用)。启动后,引擎将调用此方法一次。在此之前,您必须在进行任何移动之前构建并存储游戏的初始表示。
Logger
, - 对记录器类的引用
playerId
, - 此玩家的身份证(1人最多4人,四人游戏)
numWalls
, - 此玩家拥有的墙数
playerHomes
, - 其他玩家的位置(空坐标表示无效玩家;基于1的索引)
电路板上的方块表示为Coordinate
,具有行和列值。
我只是混淆了我应该如何填充一个9x9游戏板,它被表示为图形。我试图让每个坐标都有4个邻居,除非它是角坐标或板边缘的坐标。
但我希望我的键和值表示为
HashMap<Coordinate, HashSet<Coordinate>
例如,位置(键)(0,0)
具有邻居(值):[(0,1),(1,1)]
。
答案 0 :(得分:0)
只需将图表表示为二维矩阵,其中每个单元格将包含指定其信息的对象(例如,该单元格中的玩家)。邻接度由矩阵中的指数确定。如果您需要使用更多信息进行装饰,例如墙壁等可能使用另一个具有相同尺寸的矩阵覆盖此信息。