public Cell(Pos3d p, float alt) { altitude = alt; position = p; humidity = (((-1 * position.B) + 5) * 10) - 20 / (rnd.Next(1, 30) / 10); //влажность в процентах humidity = Math.Abs(humidity); // влажность не бывает отрицательной if (humidity < 5) { humidity = 10; //редко бывает ниже 10 } }
private void CreateMap(int width, int height) { int left = 1; for (int b = 0; b < height; b++) { map.Add(new List <Cell>()); List <Cell> row = map[map.Count - 1]; left = Math.Abs(left - 1); int rdelta = b / 2; for (int r = 0; r < width; r++) { Pos3d position = new Pos3d(r + rdelta, -(r - left - rdelta), b); float altitude = (20 - Convert.ToInt32(Math.Abs(position.B)) - Convert.ToInt32(Math.Abs(position.R) + Math.Abs(position.G))) / 2; //высота, число от 0 до 10. Чем ближе координаты к нулю, тем больше высота row.Add(new Cell(position, altitude)); } } }