public static Character Battle(Character ch1, Character ch2) { var ch1StrikesFirst = Randomness.TruePercent(); // default 50% var ch1Weapon = ch1.GetHighestDPS(); var ch2Weapon = ch2.GetHighestDPS(); while (ch1.Health > 0 && ch2.Health > 0) { if (ch1StrikesFirst) { ch2.Health -= ch1Weapon.DPS; if (ch2.Health > 0) { ch1.Health -= ch2Weapon.DPS; } } else { ch1.Health -= ch2Weapon.DPS; if (ch1.Health > 0) { ch2.Health -= ch1Weapon.DPS; } } } if (ch1.Health > 0) { return(ch1); } else { return(ch2); } }
void TestRandomness() { var t = 0; var f = 0; for (var i = 0; i < 100; i++) { var tf = Randomness.TruePercent(35); if (tf) { t++; } else { f++; } } Console.WriteLine("True: {0}; False: {1}", t, f); }