Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.74 KB | None | 0 0
  1.     public static class test
  2.     {
  3.  
  4.         static int[,] data = new int[1000, 1000];
  5.         static float[,] avg = new float[1000, 1000];
  6.         static void run()
  7.         {
  8.             for (int x = 0; x < 1000; x++)
  9.             {
  10.                 for (int y = 0; y < 1000; y++)
  11.                 {
  12.                     avgWorth(x, y, 100, 1000, ref avg);
  13.                 }
  14.             }
  15.         }
  16.  
  17.         static float avgWorth(int x, int y, int r, int wall_size, ref float[,] worth)
  18.         {
  19.             var result = 0f;
  20.  
  21.             var m = 0f;
  22.             var i = 0;
  23.             var j = 0;
  24.             for (i = -r; i < r; i++)
  25.             {
  26.                 for (j = -r; j < r; j++)
  27.                 {
  28.                     var p = i * i + j * j;
  29.                     if (p < r * r)
  30.                     {
  31.                         if (p < 0)
  32.                             p = -p;
  33.  
  34.                         var _x = x + i;
  35.                         var _y = y + j;
  36.                         var _w = 0f;
  37.  
  38.                         if (_x >= 0 && _x < wall_size && _y >= 0 && _y < wall_size)
  39.                         {
  40.                             _w = getValue(worth[_x, _y], p, r);
  41.                             m++;
  42.                         }
  43.                         result += _w;
  44.                     }
  45.                 }
  46.             }
  47.             return result / (m * 5);
  48.         }
  49.  
  50.         static float getValue(float worth, float dist, float max_dist)
  51.         {
  52.             var d = (dist / max_dist) + 0.7f;
  53.             var r = ((d * d) * 0.35f);
  54.             if (r > 0.9f)
  55.                 r = 0.9f;
  56.  
  57.             var w = (worth * 2) * (1f - r);
  58.             if (w > worth)
  59.                 w = worth;
  60.             return w;
  61.         }
  62.  
  63.  
  64.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement