// // CalculateLosses.h // // A module to calculate the distribution of losses between the // two sides in a battle. // #ifndef CALCULATE_LOSSES_H #define CLACULATE_LOSSES_H #include "Constants.h" #include "Losses.h" // // calculateLosses1vs1 // // Purpose: To calculate the probability of each unit loss // combination for 1/2/3 attackers and 1/2 defenders // rolling dice with the specified frequency // distributions. // Parameter(s): // <1> a_attacker_frequencies // <1> aa_attacker_frequencies // <1> aaa_attacker_frequencies: The frequency distribution // for the attacker dice // rolls // <2> a_attacker_value_count: The array of the dimensions // of the portion of the // a/aa/aaa_attacker_frequencies // array that is used // <3> a_defender_frequencies // <3> aa_defender_frequencies: The frequency distribution // for the defender dice rolls // <4> a_defender_value_count: The array of the dimensions // of the portion of the // a/aa/aaa_defender_frequencies // array that is used // Precondition(s): // <1> a_attacker_frequencies != NULL // <1> aa_attacker_frequencies != NULL // <1> aaa_attacker_frequencies != NULL // <2> a_attacker_value_count != NULL // <3> a_defender_frequencies != NULL // <3> aa_defender_frequencies != NULL // <4> a_defender_value_count != NULL // Returns: The probabilities of each combinations of units // being lost. // Side Effect: N/A // Losses1 calculateLosses1vs1 (unsigned int a_attacker_frequencies[POSSIBLE_VALUE_COUNT], unsigned int a_attacker_value_count[1], unsigned int a_defender_frequencies[POSSIBLE_VALUE_COUNT], unsigned int a_defender_value_count[1]); Losses1 calculateLosses2vs1 (unsigned int aa_attacker_frequencies[POSSIBLE_VALUE_COUNT][POSSIBLE_VALUE_COUNT], unsigned int a_attacker_value_count[2], unsigned int a_defender_frequencies[POSSIBLE_VALUE_COUNT], unsigned int a_defender_value_count[1]); Losses1 calculateLosses3vs1 (unsigned int aaa_attacker_frequencies[POSSIBLE_VALUE_COUNT][POSSIBLE_VALUE_COUNT][POSSIBLE_VALUE_COUNT], unsigned int a_attacker_value_count[3], unsigned int a_defender_frequencies[POSSIBLE_VALUE_COUNT], unsigned int a_defender_value_count[1]); Losses1 calculateLosses1vs2 (unsigned int a_attacker_frequencies[POSSIBLE_VALUE_COUNT], unsigned int a_attacker_value_count[1], unsigned int aa_defender_frequencies[POSSIBLE_VALUE_COUNT][POSSIBLE_VALUE_COUNT], unsigned int a_defender_value_count[2]); Losses2 calculateLosses2vs2 (unsigned int aa_attacker_frequencies[POSSIBLE_VALUE_COUNT][POSSIBLE_VALUE_COUNT], unsigned int a_attacker_value_count[2], unsigned int aa_defender_frequencies[POSSIBLE_VALUE_COUNT][POSSIBLE_VALUE_COUNT], unsigned int a_defender_value_count[2]); Losses2 calculateLosses3vs2 (unsigned int aaa_attacker_frequencies[POSSIBLE_VALUE_COUNT][POSSIBLE_VALUE_COUNT][POSSIBLE_VALUE_COUNT], unsigned int a_attacker_value_count[3], unsigned int aa_defender_frequencies[POSSIBLE_VALUE_COUNT][POSSIBLE_VALUE_COUNT], unsigned int a_defender_value_count[2]); #endif