我试图从GAMUT java库中生成Polymatrix游戏。从GAMUT生成Polymatrix游戏
try {
PolymatrixGame polyGame = new PolymatrixGame();
polyGame.setParameter("players", nbOfPlayers); //nbOfPlayers = 3L;
polyGame.setParameter("actions", nbOfActions); //nbOfActions is a Vector<String> with three entries: each equal "2".
polyGame.setParameter("graph", "RandomGraph");
polyGame.setParameter("graph_params", new ParamParser(new String[] {"-nodes", "" + nbOfPlayers, "-edges", "" + 3, "-sym_edges", "1", "-reflex_ok", "0"}));
polyGame.setParameter("subgame", "Chicken");
polyGame.setParameter("subgame_params", new ParamParser());
polyGame.initialize();
polyGame.doGenerate();
} catch (Exception e) {
e.printStackTrace();
}
我得到以下错误:
FATAL ERROR: Unable to generate polymatrix game (subgame Chicken)
java.lang.NullPointerException
我经历过的源代码,但挖我无法找到错误的根源。错误信息本身也不是很有用。
最终,我试图用给定数量的玩家生成一个随机Polymatrix游戏,并给出每个玩家的动作次数。
使用命令行有没有成功? –
是的。 _java -jar gamut.jar -g PolymatrixGame -players 3 -actions 2 -graphics RandomGraph -graph_params [-nodes 3 -geges 3 -sym_edges 1 -reflex_ok 0] -subgame Chicken -subgame_params [] _成功生成一个游戏。上面的java代码似乎完全代表这个命令,但似乎并不工作。 – Auberon
k,我问,因为我也使用GAMUT来产生随机游戏。经过与API的长期斗争之后,我简单地编写了一个适配器,以便从命令行调用jar。我通过使用'Runetime.getRuntime()。exec(“java -jar ....”)调用jar来将它集成到我的应用程序中。 –