Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static object lel = new object();
- static void Main (string[] args)
- {
- //Outer loop
- Parallel.For(0, 10, i =>
- {
- Simulate_KvsD();
- });
- Console.ReadKey();
- }
- static void Simulate_KvsD ()
- {
- int K_W = 0;
- int D_W = 0;
- int Tie = 0;
- int K_HP;
- int D_HP;
- int K_ATK;
- int D_ATK;
- int K_DEF;
- int D_DEF;
- int fights = 10000000;
- Random k_chance = new Random();
- Random d_attack = new Random();
- Random d_chance = new Random();
- //Inner loop
- for (int i = 0; i < fights; i++)
- {
- K_HP = 300;
- D_HP = 1500;
- K_ATK = 80;
- D_ATK = 120;
- K_DEF = 30;
- D_DEF = 60;
- while (K_HP > 0 & D_HP > 0)
- {
- //knight attack
- if (k_chance.Next(0, 100) <= 33)
- D_HP -= (K_ATK * 3) - D_DEF;
- else
- D_HP -= K_ATK - D_DEF;
- //dragon attack
- if (d_attack.Next(0, 100) >= 90)
- {
- if (d_chance.Next(0, 100) <= 25)
- K_HP = 0;
- else
- K_HP -= D_ATK - K_DEF;
- }
- }
- //Victory check
- if (K_HP > 0 & D_HP <= 0)
- K_W++;
- else if (D_HP > 0 & K_HP <= 0)
- D_W++;
- else
- Tie++;
- }
- lock (lel)
- {
- Console.WriteLine($"{fights} Fights");
- Console.WriteLine("Times won:");
- Console.WriteLine($"Knight: {K_W} Kills {Math.Round((K_W / (fights / 100.0)), 2)}% \nDragon: {D_W} Kills {Math.Round((D_W / (fights / 100.0)), 2)}%\nTies: {Tie} Times {Math.Round((Tie / (fights / 100.0)), 2)}% \n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement