¡A jugar RisiKo!

En RisiKo! (la versión italiana de Risk!), los jugadores lanzan dados de seis caras mientras luchan por territorios en un mapa del mundo. Cada jugador lanza entre uno y tres dados, y cada dado representa un ejército enviado a combatir.

Ordena los dados de ambos jugadores de mayor a menor. Compara los dados correspondientes hasta que uno de los jugadores se quede sin dados e ignora los dados sobrantes. El atacante gana una comparación únicamente cuando su dado es mayor que el del defensor. En caso de empate, gana el defensor. El perdedor pierde un ejército por cada comparación.

Dadas las tiradas del atacante y del defensor, devuelve la cantidad de ejércitos que pierde el defensor.

Ejemplos

Program.risiko(new int[] { 3, 6, 4 }, new int[] { 2, 5, 3 }) ⟞ 3
// 6 contra 5, 4 contra 3 y 3 contra 2: el atacante gana las tres comparaciones.

Program.risiko(new int[] { 3, 6 }, new int[] { 6, 4, 4 }) ⟞ 0
// 6 contra 6 es un empate, y 3 pierde contra 4. El defensor gana ambas comparaciones.

Program.risiko(new int[] { 3, 1 }, new int[] { 1 }) ⟞ 1
// Solo se compara el dado de mayor valor de cada lado: 3 contra 1.

Notas

  • En caso de empate, gana el defensor.
  • Si los jugadores lanzan distintas cantidades de dados, realiza tantas comparaciones como la menor cantidad de dados lanzados.
  • Cada arreglo de entrada contiene entre uno y tres dados, y el valor de cada dado va de 1 a 6.