protected virtual Point GetCoordinates(int index, Point p) { int size = Enviroment.GetSize(); Point result = Point.Empty; if (index == 1) { result = new Point(p.X - 1, p.Y - 1); } else if (index == 2) { result = new Point(p.X, p.Y - 1); } else if (index == 3) { result = new Point(p.X + 1, p.Y - 1); } else if (index == 4) { result = new Point(p.X + 1, p.Y); } else if (index == 5) { result = new Point(p.X + 1, p.Y + 1); } else if (index == 6) { result = new Point(p.X, p.Y + 1); } else if (index == 7) { result = new Point(p.X - 1, p.Y + 1); } else { result = new Point(p.X - 1, p.Y); } if (result != Point.Empty) { if (result.X < 0 || result.Y < 0 || result.X >= size || result.Y >= size) { result = Point.Empty; } } return(result); }