我的游戏有一个web应用程序和web API服务器,每年有一个状态。游戏的工作原理如下:
api如下所示:
[HttpPost]
public GameState Post([FromBody] (GameState currentGameState, PlayerSelection playerSelection))
{
var nextGameState = _gameLogic.GetNextStep(currentGameState, playerSelection);
return nextGameState;
}
现在我想做的是用Python编写一个AI,它将学习使用不同的策略玩游戏。在我看来,我可以用Python重新编码整个游戏,这样我就可以一遍又一遍地玩,或者我可以从Python调用API来玩游戏,而AI将决定如何玩
第一个选项是不可行的,因为我不想重复代码,而第二个选项看起来很糟糕,因为玩10000个游戏可能会占用很多时间。我的问题是,是否有某种方法通过API发送函数,以便在我的控制器中有一个新函数:
[HttpPost]
public GameState Post([FromBody] Func<GameState, PlayerSelection> gamePlay)
{
var currentGameState = _gameLogic.GetInitial();
while (currentGameState.Year < 50)
{
var nextMove = gamePlay(currentGameState);
currentGameState = _gameLogic.GetNextStep(currentGameState, nextMove);
}
}
因此,游戏性代表了基于当前数据的选择。这将显著提高AI必须执行的API调用数量,同时还将逻辑保留在web服务器上。它还允许AI将游戏功能参数化。我认为这可能需要某种特殊的解析器或某种元语言。有什么框架可以帮助解决这样的问题吗
目前没有回答
相关问题 更多 >
编程相关推荐