Advertisement
Guest User

Untitled

a guest
Nov 20th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.81 KB | None | 0 0
  1. private void Generate()
  2.         {
  3.             Random rand = new Random();
  4.             _field = new CellInfo[Width, Height];
  5.             var cellIndex = new List<Point>();
  6.  
  7.             for (int i = 0; i < Height; i++)
  8.                 for (int j = 0; j < Width; j++)
  9.                 {
  10.                     _field[j, i] = 0;
  11.                     cellIndex.Add(new Point(j, i));
  12.                 }
  13.  
  14.             for (int i = 0; i < Mines, i++)
  15.             {
  16.                 var p = cellIndex[rand.Next(cellIndex.Count)];
  17.                 cellIndex.Remove(p);
  18.                 _field[p.X, p.Y] = _field[p.X, p.Y] | CellInfo.IsMine;
  19.  
  20.                 bool left, up, right, down;
  21.                 left = up = right = down = false;
  22.  
  23.                 if((p.X - 1) > 0)
  24.                 {
  25.                     left = true;
  26.                     _field[p.X - 1, p.Y]++;
  27.                 }
  28.                 if ((p.Y - 1) > 0)
  29.                 {
  30.                     up = true;
  31.                     _field[p.X, p.Y - 1]++;
  32.                 }
  33.                 if ((p.X + 1) < Width)
  34.                 {
  35.                     right = true;
  36.                     _field[p.X + 1, p.Y]++;
  37.                 }
  38.                 if ((p.X + 1) < Height)
  39.                 {
  40.                     down = true;
  41.                     _field[p.X, p.Y + 1]++;
  42.                 }
  43.  
  44.                 if (up)
  45.                 {
  46.                     if (left)
  47.                         _field[p.X - 1, p.Y - 1]++;
  48.                     if(right)
  49.                         _field[p.X + 1, p.Y - 1]++;
  50.                 }
  51.                 if (down)
  52.                 {
  53.                     if (left)
  54.                         _field[p.X - 1, p.Y + 1]++;
  55.                     if (right)
  56.                         _field[p.X + 1, p.Y + 1]++;
  57.                 }
  58.             }
  59.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement