Artificial intelligence 板球作为国家机器

Artificial intelligence 板球作为国家机器,artificial-intelligence,simulation,game-engine,state-machine,Artificial Intelligence,Simulation,Game Engine,State Machine,我正在创建一个板球经理统计游戏。我需要创建一个逐球的游戏模拟。比赛/球的结果将受到球员数据和其他外部因素(如天气或选择的战术)的影响 我一直在读到,大多数游戏都可以实现为一个状态机,这听起来对我很有吸引力,但因为我是一个板球新手,所以我没能把这个游戏想象成一个状态机 球应该是一个状态机还是比赛,球员还是全部3个。我也不确定如何协调这种状态机(通过事件) 我也很难识别状态和转换。任何帮助都将不胜感激。作为第一步,你应该学习板球规则和你的球结果模型,总结以前的球对给定球的影响 然后确定需要跟踪什么,

我正在创建一个板球经理统计游戏。我需要创建一个逐球的游戏模拟。比赛/球的结果将受到球员数据和其他外部因素(如天气或选择的战术)的影响

我一直在读到,大多数游戏都可以实现为一个状态机,这听起来对我很有吸引力,但因为我是一个板球新手,所以我没能把这个游戏想象成一个状态机

球应该是一个状态机还是比赛,球员还是全部3个。我也不确定如何协调这种状态机(通过事件)


我也很难识别状态和转换。任何帮助都将不胜感激。

作为第一步,你应该学习板球规则和你的球结果模型,总结以前的球对给定球的影响

然后确定需要跟踪什么,以及使用状态机表示它是否方便。例如,统计数据通常不太便于跟踪FSM


考虑到这些信息,您应该能够构建一个模型。您需要跟踪的信息可能是状态机或特定状态的内部值。球之间的相互作用将决定从一台机器到另一台机器的转换和事件循环。

作为第一步,你应该通过板球规则和你的球结果模型来总结以前的球如何影响给定的球

然后确定需要跟踪什么,以及使用状态机表示它是否方便。例如,统计数据通常不太便于跟踪FSM


考虑到这些信息,您应该能够构建一个模型。您需要跟踪的信息可能是状态机或特定状态的内部值。球之间的相互作用将决定从一台机器到另一台机器的转换和事件循环。

因此,我从你的问题中了解到-你的板球经理游戏将根据球员的统计数据(保龄球手的技能/经验、击球员的技能/经验、防守/持球统计等)逐球模拟比赛以及其他相关变量。据我所知,这将更多的是一个算法引擎,而不是一个板球游戏的视觉表现

现在回答你的问题,首先,我不相信你对FSM的看法是正确的。FSM是这样设计的一段代码:在其生命周期的任何时刻,它都处于多种可能的执行状态之一。每个状态都可以而且通常都有一个不同的更新例程。此外,每个状态可以根据预定义的触发器/事件转换为另一个状态。您需要了解的是,各国对同一实体实施不同的行为

现在,“大多数游戏都可以实现为一个状态机”——不是“一个”状态机,而是一整套状态机。游戏中的几个管理器类,渲染器,游戏对象,菜单系统,几乎所有的东西都是通过自己的状态机工作的。为了这个例子,想象一个游戏角色,比如一个拳击手。在“CBoxer”(?)类中可以找到的一些状态将是“Blocking”、“TakingHit”、“Dodge”、“RightUpper”、“LeftHook”等等

但是请记住,FSM更多的是一种设计构造——一种设想解决当前问题的方法。你不必使用它们。你可以在没有状态机的情况下完成一个完整的游戏(我想:)。但是,FSM使您的代码设计非常直观和直观,坦率地说,在任何规模合适的项目中都很难找不到FSM


我建议您查看一些工作中的FSM代码示例。一旦你了解了背后的想法,你会发现自己到处都在使用它们:)

因此我从你的问题中了解到-你的板球经理游戏将根据球员的统计数据(保龄球手的技能/经验、击球手的技能/经验、防守/持球统计等)和其他相关变量逐球模拟比赛。据我所知,这将更多的是一个算法引擎,而不是一个板球游戏的视觉表现

现在回答你的问题,首先,我不相信你对FSM的看法是正确的。FSM是这样设计的一段代码:在其生命周期的任何时刻,它都处于多种可能的执行状态之一。每个状态都可以而且通常都有一个不同的更新例程。此外,每个状态可以根据预定义的触发器/事件转换为另一个状态。您需要了解的是,各国对同一实体实施不同的行为

现在,“大多数游戏都可以实现为一个状态机”——不是“一个”状态机,而是一整套状态机。游戏中的几个管理器类,渲染器,游戏对象,菜单系统,几乎所有的东西都是通过自己的状态机工作的。为了这个例子,想象一个游戏角色,比如一个拳击手。在“CBoxer”(?)类中可以找到的一些状态将是“Blocking”、“TakingHit”、“Dodge”、“RightUpper”、“LeftHook”等等

但是请记住,FSM更多的是一种设计构造——一种设想解决当前问题的方法。你不必使用它们。你可以在没有状态机的情况下完成一个完整的游戏(我想:)。但是,FSM使您的代码设计非常直观和直观,坦率地说,在任何规模合适的项目中都很难找不到FSM


我建议您查看一些工作中的FSM代码示例。一旦你了解了它背后的想法,你会发现自己到处都在使用它们:)

谢谢你的回答。游戏将减少视觉效果,更多基于文本。我意识到我可能需要一大堆状态机,一个用于球,一个用于球员,一个用于比赛等等。