在POST方法的主体中是否有发送函数的方法

2024-09-27 19:21:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我的游戏有一个web应用程序和web API服务器,每年有一个状态。游戏的工作原理如下:

  1. 新游戏(第0年)
  2. 玩家在网上选择下一步
  3. 玩家点击提交,调用API
  4. API返回下一个状态(第1年),这将在web上显示一些数据
  5. 玩家在网上选择下一步
  6. 玩家点击提交,API称为API返回下一个状态(第2年)
  7. 等等
  8. 当游戏到达预定的年份时,游戏结束

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将游戏功能参数化。我认为这可能需要某种特殊的解析器或某种元语言。有什么框架可以帮助解决这样的问题吗


Tags: 数据服务器apiweb游戏var状态玩家

热门问题