En un juego de RisiKo! (la versión italiana del popular juego de mesa Risk!), los jugadores lanzan dados de seis caras para conquistar territorios alrededor de un mapa del mundo.
Cuando dos jugadores se disputan un territorio, hay una batalla y lanzan de 1 a 3 dados, donde cada dado representa un ejército enviado a luchar. Para establecer quién pierde ejércitos después de la batalla, los dados se comparan comenzando por el valor más alto y continuando con las comparaciones en orden descendente (eliminando los dados sobrantes si la cantidad de dados lanzados por los dos jugadores es diferente).
Al comparar las tiradas, en cada comparación el dado del jugador atacante debe tener un valor mayor que el dado del defensor para ganar la lucha. En caso de empate, el defensor gana esa lucha. El perdedor solo pierde 1 ejército por comparación.
Dados dos arreglos att (tiradas del atacante) y def (tiradas del defensor), implementa una función que devuelva como entero la cantidad de ejércitos perdidos por el defensor.
risiko([3, 6, 4], [2, 5, 3]) ➞ 3
// Comparison 1:
// ATT(6) vs. DEF(5): DEF loses an army
// Comparison 2:
// ATT(4) vs. DEF(3): DEF loses an army
// Comparison 3:
// ATT(3) vs. DEF(2): DEF loses an army
risiko([3, 6], [6, 4, 4]) ➞ 0
// Comparison 1:
// ATT(6) vs. DEF(6): ATT loses an army
// Comparison 2:
// ATT(3) vs. DEF(4): ATT loses an army
risiko([3, 1], [1]) ➞ 1
// Comparison 1:
// ATT(3) vs. DEF(1): DEF loses an army