角色选择算法

时间:2015-07-08 08:22:27

标签: algorithm

我正在为多人游戏中的配对系统编写一个算法,但目前还没有关于如何在群组中分配角色的想法,除了蛮力方法(有一些小的优化)。

这是任务:

  1. 我们有一组1到6名球员
  2. 每个玩家可以选择角色坦克(T), DamageDealer (DD)或 Healer (H)或任意组合这些角色。即paladin_of_light可以治疗盟友(成为治疗师)或对敌人造成伤害( DamageDealer ),但不能同时进行伤害
  3. 每组需要1 Tank ,1 Healer 和4 DamageDealers 。如果少于6个玩家,则组可以是所需组合的任何子集(即3个玩家组可以有3个 DamageDealers ,这非常好)
  4. 算法必须为每个玩家分配一个角色,或者声明这样的群组不可能

2 个答案:

答案 0 :(得分:0)

看看Stable Marriage Problem。考虑到每个玩家的偏好,它找到最佳匹配。所以每个人都应该对结果感到满意。

wiki页面包含一些算法的伪代码

答案 1 :(得分:0)

您可以使用Genetic algorithm比使用蛮力更有效地找出最佳组合。

要做到这一点,你必须选择健身功能。在第一种情况下,有6名玩家很明显 - 它是1T 1H和3DD所需组合的距离。对于其他组,您应该为健身功能定义“完美”组合或其他标准。