示例#1
0
        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
            }
        }
示例#2
0
        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));
                }
            }
        }