Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static class test
- {
- static int[,] data = new int[1000, 1000];
- static float[,] avg = new float[1000, 1000];
- static void run()
- {
- for (int x = 0; x < 1000; x++)
- {
- for (int y = 0; y < 1000; y++)
- {
- avgWorth(x, y, 100, 1000, ref avg);
- }
- }
- }
- static float avgWorth(int x, int y, int r, int wall_size, ref float[,] worth)
- {
- var result = 0f;
- var m = 0f;
- var i = 0;
- var j = 0;
- for (i = -r; i < r; i++)
- {
- for (j = -r; j < r; j++)
- {
- var p = i * i + j * j;
- if (p < r * r)
- {
- if (p < 0)
- p = -p;
- var _x = x + i;
- var _y = y + j;
- var _w = 0f;
- if (_x >= 0 && _x < wall_size && _y >= 0 && _y < wall_size)
- {
- _w = getValue(worth[_x, _y], p, r);
- m++;
- }
- result += _w;
- }
- }
- }
- return result / (m * 5);
- }
- static float getValue(float worth, float dist, float max_dist)
- {
- var d = (dist / max_dist) + 0.7f;
- var r = ((d * d) * 0.35f);
- if (r > 0.9f)
- r = 0.9f;
- var w = (worth * 2) * (1f - r);
- if (w > worth)
- w = worth;
- return w;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement