private Room Generate(Options options) { var roomType = options.RoomTypes[_random.Next(1, options.RoomTypes.Length) - 1]; var roomWidth = _random.NextOdd(options.MinRoomWidth, options.MaxRoomWidth); var roomHeight = roomType == RoomType.Rectangle ? _random.NextOdd(options.MinRoomHeight, options.MaxRoomHeight) : roomWidth; var roomX = _random.Next(options.Border, DetermineMaxPosition(options.LevelHeight, roomHeight, options.Border)); var roomY = _random.Next(options.Border, DetermineMaxPosition(options.LevelWidth, roomWidth, options.Border)); var room = new Room(roomHeight, roomWidth, roomX, roomY, roomType); return(room); }