Advertisement
Guest User

Untitled

a guest
Jul 16th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.49 KB | None | 0 0
  1.         static object lel = new object();
  2.         static void Main (string[] args)
  3.         {
  4.             //Outer loop
  5.             Parallel.For(0, 10, i =>
  6.             {
  7.                 Simulate_KvsD();
  8.             });
  9.             Console.ReadKey();
  10.         }
  11.  
  12.         static void Simulate_KvsD ()
  13.         {
  14.             int K_W = 0;
  15.             int D_W = 0;
  16.             int Tie = 0;
  17.  
  18.             int K_HP;
  19.             int D_HP;
  20.             int K_ATK;
  21.             int D_ATK;
  22.             int K_DEF;
  23.             int D_DEF;
  24.  
  25.             int fights = 10000000;
  26.  
  27.             Random k_chance = new Random();
  28.             Random d_attack = new Random();
  29.             Random d_chance = new Random();
  30.  
  31.             //Inner loop
  32.             for (int i = 0; i < fights; i++)
  33.             {
  34.                 K_HP = 300;
  35.                 D_HP = 1500;
  36.                 K_ATK = 80;
  37.                 D_ATK = 120;
  38.                 K_DEF = 30;
  39.                 D_DEF = 60;
  40.  
  41.                 while (K_HP > 0 & D_HP > 0)
  42.                 {
  43.                     //knight attack
  44.                     if (k_chance.Next(0, 100) <= 33)
  45.                         D_HP -= (K_ATK * 3) - D_DEF;
  46.                     else
  47.                         D_HP -= K_ATK - D_DEF;
  48.  
  49.                     //dragon attack
  50.                     if (d_attack.Next(0, 100) >= 90)
  51.                     {
  52.                         if (d_chance.Next(0, 100) <= 25)
  53.                             K_HP = 0;
  54.                         else
  55.                             K_HP -= D_ATK - K_DEF;
  56.                     }
  57.                 }
  58.                
  59.                 //Victory check
  60.                 if (K_HP > 0 & D_HP <= 0)
  61.                     K_W++;
  62.                 else if (D_HP > 0 & K_HP <= 0)
  63.                     D_W++;
  64.                 else
  65.                     Tie++;
  66.             }
  67.             lock (lel)
  68.             {
  69.                 Console.WriteLine($"{fights} Fights");
  70.                 Console.WriteLine("Times won:");
  71.                 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");
  72.             }
  73.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement