Algorithm 如何模拟两个玩家之间的战斗?
我有两名球员,我想模拟他们之间的比赛。两者都有一些属性(权力、智慧……)和不同的行为。某些操作的结果基于属性值和某些运气因素 算法:Algorithm 如何模拟两个玩家之间的战斗?,algorithm,search,artificial-intelligence,minimax,Algorithm,Search,Artificial Intelligence,Minimax,我有两名球员,我想模拟他们之间的比赛。两者都有一些属性(权力、智慧……)和不同的行为。某些操作的结果基于属性值和某些运气因素 算法: 为两个玩家构建一个包含所有可能移动的游戏树 游戏树可能深度有限 每一关都属于不同的玩家 在叶子节点上使用一些试探法来找出必须移动的玩家获胜的概率 向上传播概率(就像极小极大算法一样) 选择概率最高的移动 继续此算法的开头 基本上这就是极小极大算法。但我有几个问题: 如何考虑运气因素 当我做一个动作时,我必须再次运行整个算法吗?(使用+1深度和新根节点构建树
- 为两个玩家构建一个包含所有可能移动的游戏树
- 游戏树可能深度有限
- 每一关都属于不同的玩家
- 在叶子节点上使用一些试探法来找出必须移动的玩家获胜的概率
- 向上传播概率(就像极小极大算法一样)
- 选择概率最高的移动
- 继续此算法的开头
谢谢。您所要求的内容非常“广泛”…但许多开发人员已经完成了 我建议你开始读一本关于游戏设计的书,比如: 。。。并在和中搜索游戏实现的示例
祝你好运,你所要求的是非常“巨大的”…但许多开发人员已经做到了 我建议你开始读一本关于游戏设计的书,比如: 。。。并在和中搜索游戏实现的示例
祝你好运,虽然通常你的算法是合理的,但我们无法保证这个算法是最好的。例如,让我们想象两个游戏:
是否需要在每个节点后重新计算整个树取决于是否可以100%预测所选操作的结果。例如,在国际象棋中,你可以预测,如果你决定移动一个棋子,那么这个棋子肯定会移动到你决定移动的地方。这允许您在每一步中选择移动树中的分支,并为其中的每个场景计算一次移动,而不是从无到有地重新计算完整的树。但是如果玩家可以决定用枪射击,这是不适用的,但是因为他运气不好,他会朝自己的腿开枪。虽然通常你的算法是合理的,但我们无法保证这个算法是最好的。例如,让我们想象两个游戏: