10
风险之战:崩溃
给定两个用于在Risk中进行战斗的掷骰子清单,您的程序或功能必须输出每个玩家损失的部队数量。 背景 您不必阅读本手册,因为它只是背景知识。跳至“任务”子标题,继续保持原样。 在风险游戏中,一个玩家可以攻击另一位玩家(实际上,这是获胜的必要条件)。战斗的结果取决于掷骰子。每次战斗都是连续进行的子战,每个玩家可能会损失最多2的军队。 在一个子战中,防御者和攻击者各自掷出几个骰子,其骰子数量可能根据与该挑战无关的情况而变化。将攻击者的最高价值的骰子与防御者的最高价值的骰子进行比较。如果攻击者的死亡人数高于防御者的死亡人数,则防御者将输掉一件。否则,攻击者将丢失一件。 然后,如果两个玩家都至少有两个骰子,则比较两个玩家中第二高价值的骰子。同样,如果攻击者的死率高于防御者的死率,则防御者将输掉一件。否则,攻击者将丢失一件。 (防御者赢得平局。如果防御者和攻击者都掷出a 4,则攻击者将输掉一块。) 在Wikipedia文章的子战斗中,攻击者的骰子为红色,而防御者的骰子为白色。攻击者的最高骰子是4,防御者的最高骰子是3。由于攻击者更高,因此防御者输了一块。第二高的是3攻击者和2防御者。由于攻击者再次处于较高位置,因此防御者输了另外一块。因此,在此子战斗中,攻击者没有损失,防御者也没有损失2。 请注意,不比较第三高的片段。这是因为后卫在一个子战中最多有两个骰子,因此没有第三高的骰子可供比较。 任务 给定攻击者和防御者的未分类骰子掷骰(整数在1到6之间,包括1到6),以任何方便的形式输出每个玩家损失的军队数量。输出可以采用任何方便的形式,只要它具有指示五种可能性的不同输出即可。您必须指出问题中有哪些不同的输出。 输出确定如下:以def=0和开头atk=0。如果攻击者的掷骰子列表的最大值大于防御者的掷骰子列表的最大值,则增加def。否则,增加atk。 如果两个骰子列表的长度都至少为2,则:如果攻击者的骰子列表的第二个最大值大于列表的第二个最大值,则递增def,否则递增atk。 最后,程序或函数必须为以下5种输出可能性中的每一种输出唯一的标识符: ╔═══╦═══╗ ║atk║def║ ╠═══╬═══╣ ║ 1 ║ 0 ║ ║ 0 ║ 1 ║ ║ 2 ║ 0 ║ ║ 1 ║ 1 ║ ║ 0 ║ 2 ║ ╚═══╩═══╝ 例 防御者:[3, 2] 攻击者:[2, 4, 1] …