/// <summary> /// /// </summary> /// <param name="dirAhead">Направление движения к перекрестку</param> /// <param name="countRoadToCross">Количество полос к перекрестку</param> /// <param name="countRoadFromCross">Количество полос встречных</param> /// <param name="LenghtOfRoad">Длина дороги</param> public Road(dirRoad dirAhead, int countRoadToCross, int countRoadFromCross, int LenghtOfRoad) { Tdir = dirAhead; TcountRoad = countRoadFromCross + countRoadToCross; TLenghtOfRoad = LenghtOfRoad; //Левая прилегающая дорога к перекрестку if (dirRoad.Left_To_Rigth == dirAhead || dirRoad.Right_To_Left == dirAhead) { matrixRoad = new int[TcountRoad, LenghtOfRoad]; //Дорога от перекрестка for (int i = 0; i < countRoadFromCross; i++) { for (int j = 0; j < LenghtOfRoad; j++) { matrixRoad[i, j] = (int)dirRoad.Right_To_Left; } } for (int i = countRoadFromCross; i < TcountRoad; i++) { for (int j = 0; j < LenghtOfRoad; j++) { matrixRoad[i, j] = (int)dirRoad.Left_To_Rigth; } } Width = TLenghtOfRoad; Height = TcountRoad; } //Нижняя прилегающая дорога к перекрестку if (dirRoad.Bot_To_Top == dirAhead || dirRoad.Top_To_Bot == dirAhead) { matrixRoad = new int[LenghtOfRoad, TcountRoad]; //Дорога от перекрестка for (int i = 0; i < LenghtOfRoad; i++) { for (int j = 0; j < countRoadFromCross; j++) { matrixRoad[i, j] = (int)dirRoad.Top_To_Bot; } } for (int i = 0; i < LenghtOfRoad; i++) { for (int j = countRoadFromCross; j < TcountRoad; j++) { matrixRoad[i, j] = (int)dirRoad.Bot_To_Top; } } Width = TcountRoad; Height = TLenghtOfRoad; } }
/// <summary> /// Функция для создания объекта дроги /// </summary> /// <param name="dir">Направление</param> /// <param name="input">Данные из формы для ввода</param> /// <returns></returns> Road CreateRoad(dirRoad dir, InputField input) { Debug.Log(input.text); int[] data = new int[3]; string[] dataStr = new string[3]; //Делим через пробел string temp = input.text; dataStr = temp.Split(' '); if (dataStr.Length != 3) { dataStr = new string[] { "0", "0", "0" }; } for (int i = 0; i < 3; i++) { string str = dataStr[i]; int num; bool isNum = int.TryParse(str, out num); if (isNum) { data[i] = Convert.ToInt32(dataStr[i]); } else { data[i] = 0; } } for (int i = 0; i < dataStr.Length; i++) { data[i] = Convert.ToInt32(dataStr[i]); Debug.Log(data[i]); } if (data.Length < 3) { data[0] = 0; data[1] = 0; data[2] = 0; } return(new Road(dir, data[0], data[1], data[2])); }