/// <summary> /// Задание 1 /// </summary> private static void Task1() { CL.BeginApp("Считывать матрицу смежности из файла"); string filename = @"..\..\..\TxtFiles\matrix.txt"; int[,] matrix = ReadMatrix.Read(filename); CL.PrintArr(matrix); CL.ConsolePause(); Menu(); }
/// <summary> /// Задание 3 /// </summary> private static void Task3() { CL.BeginApp("Функция обхода графа в ширину"); string filename = @"..\..\..\TxtFiles\WorkMatrix.txt"; int[,] matrix = ReadMatrix.Read(filename); CL.PrintArr(matrix); SearchGraph search = new SearchGraph(); search.BFS(matrix); //SearchGraph.BFS(matrix); CL.ConsolePause(); Menu(); }
void Update() { float massS = 0, centerS = 0, massR = 0, centerR = 0; Debug.Log(speed_list[0].ComputeFunc(sp).ToString() + " " + ls_list[0].ComputeFunc(l_s).ToString() + " " + ms_list[0].ComputeFunc(middle_s).ToString() + " " + rs_list[0].ComputeFunc(r_s).ToString() + '\n' + speed_list[1].ComputeFunc(sp).ToString() + " " + ls_list[1].ComputeFunc(l_s).ToString() + " " + ms_list[1].ComputeFunc(middle_s).ToString() + " " + rs_list[1].ComputeFunc(r_s).ToString() + '\n' + speed_list[2].ComputeFunc(sp).ToString() + " " + ls_list[2].ComputeFunc(l_s).ToString() + " " + ms_list[2].ComputeFunc(middle_s).ToString() + " " + rs_list[2].ComputeFunc(r_s).ToString()); for (int i = 0; i < 3; ++i) { for (int j = 0; j < 3; ++j) { for (int k = 0; k < 3; ++k) { for (int l = 0; l < 3; ++l) { ReadMatrix rm = GetComponent <ReadMatrix>(); int rot = rm.rules[i][2 - j][2 - k][2 - l].Value; int a = rm.rules[i][2 - j][2 - k][2 - l].Key; List <float> li = new List <float>(); li.Add(speed_list[i].ComputeFunc(sp)); li.Add(ls_list[j].ComputeFunc(l_s)); li.Add(ms_list[k].ComputeFunc(middle_s)); li.Add(rs_list[l].ComputeFunc(r_s)); float min = Min(li); if (min != 0) { //Debug.Log(i.ToString() + j.ToString() + k.ToString() + l.ToString()); //Debug.Log("Minimum" + min.ToString()); //Debug.Log(speed_list[i].ComputeFunc(sp).ToString() + " " + ls_list[j].ComputeFunc(l_s).ToString() + " " + ms_list[k].ComputeFunc(middle_s).ToString() + " " + rs_list[l].ComputeFunc(r_s).ToString()); //Debug.Log("Acceleration " + a.ToString() + " Rotation " + rot.ToString()); float mass_speed = SpeedSquare(a, min); float center_speed = SpeedCenter(a, min); float mass_rotation = RotationSquare(rot, min); float center_rotation = RotationCenter(rot, min); //Debug.Log("Square" + mass_speed.ToString() + " Center" + center_speed.ToString()); //Debug.Log("Square" + mass_rotation.ToString() + " Center" + center_rotation.ToString()); if (massS == 0) { massS = mass_speed; centerS = center_speed; } else { if (centerS < center_speed) { centerS += (center_speed - centerS) * (mass_speed / (mass_speed + massS)); } else { centerS -= (centerS - center_speed) * (mass_speed / (mass_speed + massS)); } massS += mass_speed; } if (massR == 0) { massR = mass_rotation; centerR = center_rotation; } else { if (centerR < center_speed) { centerR += (center_speed - centerR) * (mass_speed / (mass_speed + massR)); } else { centerR -= (centerR - center_speed) * (mass_speed / (mass_speed + massR)); } massS += mass_speed; } } } } } } //Debug.Log("ASFSGASFGSDFSADGASDGASDFASDFASDGSdgasdgasdfasdfasFasdfasdfasdgfsdfasdfasdfasdfasdfafsdfsdfsdfsdfs"); sp += centerS; if (sp < 0.05f) { sp = 0.05f; } transform.position += Forward() * sp; Debug.Log("Speed = " + sp.ToString() + " Acceleration = " + centerS.ToString() + " Rotation = " + centerR.ToString()); transform.Rotate(new Vector3(0, 0, -centerR)); }