Advertisement
Guest User

Untitled

a guest
Nov 6th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.70 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace First_Game
  7. {
  8.     class Disp
  9.     {
  10.         Random rand = new Random();
  11.  
  12.         private float randOffset() {
  13.             //return rand.Next(-100, 101) / 100f;
  14.             return 0;
  15.         }
  16.  
  17.         static int depth = 6; //do not set above 8!
  18.  
  19.         static int n = (int)Math.Pow(2, depth) + 1;
  20.         static int n_persist = n;
  21.  
  22.         static float[,] heightMap = new float[n, n];
  23.  
  24.         private void setArr(int offsetX, int offsetY)
  25.         {
  26.             heightMap[n / 2 + offsetX, 0 + offsetY] = ((heightMap[0 + offsetX, 0 + offsetY] + heightMap[n - 1 + offsetX, 0 + offsetY]) / 2);
  27.             heightMap[0 + offsetX, n / 2 + offsetY] = ((heightMap[0 + offsetX, 0 + offsetY] + heightMap[0 + offsetX, n - 1 + offsetY]) / 2);
  28.             heightMap[n - 1 + offsetX, n / 2 + offsetY] = ((heightMap[n - 1 + offsetX, 0 + offsetY] + heightMap[n - 1 + offsetX, n - 1 + offsetY]) / 2);
  29.             heightMap[n / 2 + offsetX, n - 1 + offsetY] = ((heightMap[0 + offsetX, n - 1 + offsetY] + heightMap[n - 1 + offsetX, n - 1 + offsetY]) / 2);
  30.  
  31.             heightMap[n / 2 + offsetX, n / 2 + offsetY] = ((heightMap[n / 2 + offsetX, 0 + offsetY] + heightMap[0 + offsetX, n / 2 + offsetY] + heightMap[n / 2 + offsetX, n - 1 + offsetY] + heightMap[n - 1 + offsetX, n / 2 + offsetY]) / 4f);
  32.         }
  33.  
  34.         private void toArr(int offsetX, int offsetY)
  35.         {
  36.             setArr(0 + offsetX, 0 + offsetY);
  37.             setArr(n - 1 + offsetX, 0 + offsetY);
  38.             setArr(0 + offsetX, n - 1 + offsetY);
  39.             setArr(n - 1 + offsetX, n - 1 + offsetY);
  40.         }
  41.  
  42.         private void higherToArr(int offsetX, int offsetY)
  43.         {
  44.             toArr(0 + offsetX, 0 + offsetY);
  45.             toArr(n * 2 - 2 + offsetX, 0 + offsetY);
  46.             toArr(0 + offsetX, n * 2 - 2 + offsetY);
  47.             toArr(n * 2 - 2 + offsetX, n * 2 - 2 + offsetY);
  48.         }
  49.  
  50.         public Disp()
  51.         {
  52.             heightMap[0, 0] = rand.Next(0, 10);
  53.             heightMap[0, n - 1] = rand.Next(0, 10);
  54.             heightMap[n - 1, 0] = rand.Next(0, 10);
  55.             heightMap[n - 1, n - 1] = rand.Next(0, 10);
  56.  
  57.             heightMap[n / 2, 0] = ((heightMap[0, 0] + heightMap[n - 1, 0]) / 2) + randOffset();
  58.             heightMap[0, n / 2] = ((heightMap[0, 0] + heightMap[0, n - 1]) / 2) + randOffset();
  59.             heightMap[n - 1, n / 2] = ((heightMap[n - 1, 0] + heightMap[n - 1, n - 1]) / 2) + randOffset();
  60.             heightMap[n / 2, n - 1] = ((heightMap[0, n - 1] + heightMap[n - 1, n - 1]) / 2) + randOffset();
  61.  
  62.             heightMap[n / 2, n / 2] = ((heightMap[n / 2, 0] + heightMap[0, n / 2] + heightMap[n / 2, n - 1] + heightMap[n - 1, n / 2]) / 4f) + randOffset();
  63.  
  64.             n = (n / 2) + 1;
  65.             toArr(0, 0);
  66.  
  67.             n = (n / 2) + 1;
  68.             higherToArr(0, 0);
  69.  
  70.             for (int i = 0; i < n_persist; i++)
  71.             {
  72.                 for (int j = 0; j < n_persist; j++)
  73.                 {
  74.                     Console.WriteLine(i + "\t" + j + "\t" + heightMap[i, j]);
  75.                 }
  76.             }
  77.         }
  78.     }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement