Created
July 12, 2011 11:02
-
-
Save fornwall/1077774 to your computer and use it in GitHub Desktop.
Calculating chances in the game of Risk
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.Arrays; | |
public class Risk { | |
public static void main(String[] args) { | |
long defenderLoosesTwo = 0; | |
long eachLoosesOne = 0; | |
long attackerLoosesTwo = 0; | |
int[] attackerDices = new int[3]; | |
int[] defenderDices = new int[2]; | |
for (int firstAttackerDice = 1; firstAttackerDice < 6; firstAttackerDice++) { | |
for (int secondAttackerDice = 1; secondAttackerDice < 6; secondAttackerDice++) { | |
for (int thirdAttackerDice = 1; thirdAttackerDice < 6; thirdAttackerDice++) { | |
for (int firstDefenderDice = 1; firstDefenderDice < 6; firstDefenderDice++) { | |
for (int secondDefenderDice = 1; secondDefenderDice < 6; secondDefenderDice++) { | |
attackerDices[0] = firstAttackerDice; | |
attackerDices[1] = secondAttackerDice; | |
attackerDices[2] = thirdAttackerDice; | |
defenderDices[0] = firstDefenderDice; | |
defenderDices[1] = secondDefenderDice; | |
Arrays.sort(attackerDices); | |
Arrays.sort(defenderDices); | |
int numDefenderLosses = 0; | |
if (attackerDices[2] > defenderDices[1]) numDefenderLosses++; | |
if (attackerDices[1] > defenderDices[0]) numDefenderLosses++; | |
if (numDefenderLosses == 2) defenderLoosesTwo++; | |
else if (numDefenderLosses == 1) eachLoosesOne++; | |
else if (numDefenderLosses == 0) attackerLoosesTwo++; | |
} | |
} | |
} | |
} | |
} | |
double countTotalPossibilities = defenderLoosesTwo + eachLoosesOne + attackerLoosesTwo; | |
double percentageDefenderLoosesTwo = 100 * defenderLoosesTwo / countTotalPossibilities; | |
double percentageEachLoosesOne = 100 * eachLoosesOne / countTotalPossibilities; | |
double percentageAttackerLoosesTwo = 100 * attackerLoosesTwo / countTotalPossibilities; | |
System.out.println("Defender looses two: " + percentageDefenderLoosesTwo); | |
System.out.println("Each looses one: " + percentageEachLoosesOne); | |
System.out.println("Attacker looses two: " + percentageAttackerLoosesTwo); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment