最佳的攻击风险博弈algorithm

我提前为我的英语道歉。我会试着解释我的问题。 我正在研究风险游戏的新版本。 我想改变攻击algorithm,使其更接近现实生活中的战争。 拥有更多军队的一方必须比较弱一方有优势。

这些是维基百科原创棋盘游戏规则:

配对攻击(红色)和防守(白色)骰子的例子; 在这种情况下,攻击者赢得了这场战斗。 轮到轮到攻击的时候,只能攻击相邻海域或通过海上航线连接到自己领土的领土。 战斗的结果是由掷骰子决定的。 攻击方以一,二,三军攻击,掷出相应的一,二,三颗骰子。 至less有一个军队必须留在没有参与进攻的攻击地区,因为领土永远不会被空置。 在攻击者滚动之前,防御者必须select抵抗一两个军队的攻击(最多使用当前占领被保卫领土的军队的数量)[4]。 每个玩家的最高死亡率和他们的第二高死亡率(如果两个玩家掷出不止一个)相比。 在每个比较中,最高的数字胜出。 防守者在平局中获胜。 每一个骰子的比较,失败者从游戏板上移除一个军队从他的领土。 任何额外的骰子都被忽视,不会影响结果。

我认为这些规则对于现实生活中的情况并不是很好,因为我们从历史上知道,大量军队比弱方有优势。 战争期间,我必须在双方之间取得平衡。

目前我正在使用以下algorithm

army1 = random.Next(1, 20 + (numberOfSolidersArmy1 / 5)); army2 = random.Next(1, 20 + (numberOfSolidersArmy2 / 5)); 

然后我比较军队1和军队2,减less一个小数目的一方的士兵数量。

你有什么建议更好的algorithm?

如果你想要一个更现实的方程式,那么兰切斯特法则对你有些帮助: http : //en.wikipedia.org/wiki/Lanchester%27s_laws

然而,根据你是模拟手持格斗还是远程格斗,这些都不一定适用于你的问题。

模拟线性法则的一个简单方法就是让你比较的数值与你使用的军队数量成线性比例。 每支军队掷骰1,加起来总数,任何一方得分最低的都会失去军队。 如果你正在处理大量的士兵数量而不是小部队数量,那么计算出一方的相对规模优势或劣势,并乘以该方面产生的随机值。