public void ObjectHit() //Esta es la función que se encarga de crear los objetos y que fue llamada anteriormente. { while (i < nRows) //Dentro de la función creamos un bucle que se repetirá las veces que se cumpla la condición que esta entre paréntesis. { GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere); //Después de verificar que lo anterior sea verdadero, creara un GameObject, en este caso un objeto de tipo esfera. sphere.transform.position = new Vector3(i, j, 0); //Despues de instanciar la esfera, esta línea lo que hace es ubicarme dicha esfera dentro de la escena de Unity por medio de coordenadas, en donde X valdrá "i" es decir 1 en este primer caso, Y valdrá "j" (anteriormente creada) es decir 0 en este primer caso y Z siempre valdrá 0 ya que no trabajaremos con profundidad. colorRandom = Random.Range(1, 6); //Inicializamos la variable anteriormente creada "colorRandom" con un número aleatorio entre 1 y 6, y esta variable es la que nos dará un número que, dependiendo de este, se asignara un color u otro a la esfera creada. sphere.name = "sphere " + k; //En esta linea lo que se hace es simplemente darle un nombre a esa esfera que se creó, es decir, por defecto la esfera que se crea pasa a ser llamada "Sphere", así que esta línea es solo por organizar los nombres para que todas no se llamen igual. switch (colorRandom) //Después de que se ejecute lo anteior pasará a esta línea, que también recibe un argumento, se realizará una y u otra de las siguientes lineas, por lo tanto estamos preguntando que según lo que haya dentro del parentesis se ejecute lo siguiente: { case 1: //Esta es la forma de decir que, en caso que sea el número 1 aquel que fue dado como argumento, es decir, que en caso que la variable "colorRandom" haya valido 1, se realice el paso siguiente. sphere.gameObject.GetComponent <Renderer>().material.color = Color.grey; //Así es como se le puede asignar un color al objeto que se acaba de crear. break; //Break se utiliza para, romper o quebrar el bloque de código que sigue, en este caso, en el "switch", es decir, el resto de casos ya no se leerán. case 2: sphere.gameObject.GetComponent <Renderer>().material.color = Color.blue; break; case 3: sphere.gameObject.GetComponent <Renderer>().material.color = Color.red; break; case 4: sphere.gameObject.GetComponent <Renderer>().material.color = Color.green; break; case 5: sphere.gameObject.GetComponent <Renderer>().material.color = Color.magenta; break; default: sphere.gameObject.GetComponent <Renderer>().material.color = Color.white; break; } i++; //Esta línea que lo único que hace es sumarle 1 al número que tenga la variable "i", por lo tanto, en este caso la variable vale 1, y al llegar a esta línea, "i++" le sumara 1 a "i", es decir que la variable quedará valiendo ahora mismo 2. k++; //Esta línea hace lo mismo que la anterior, solo que se le aplicará a la variable "k". Analize analize = sphere.AddComponent <Analize>(); //Aquí estamos haciendo una instancia de una clase que esta en otro script la cual tiene otro código. analize.AnalizeColor(beforeObj, sphere); //Utilizamos el metodo que esta clase contiene para hacer el analisis de los colores. beforeObj = sphere; //Utilizamos la variable creada al principio y se le asignará la variable "sphere" que contiene la esfera que se acaba de crear. if (i == nRows) //Verificamos si "i" llego a ser igual a la variable "nRows", en caso que sea verdadero pasará a lo siguiente. { i = 1; //"i" pasa a ser 1 de nuevo para que las esferas pasen a ser instanciadas de nuevo en la posicion 1 en la coordenada de X. j++; //"j" que valía 0, pasa a ser 1 con "j++", es decir, X vuelve a empezar pero Y pasa a ser una unidad mayor, por lo tanto, este proceso se repetira una y otra vez hasta que la condicion que hay en el ciclo "while" sea falso, se creará otra fila de esferas encima de la anterior. } if (j == nColumns) //Verificamos que cuando "j" sea igual al número random, quiere decir que ya se crearon todas las filas y columnas asignadas por las variables Random. { break; //Se detiene con el objetivo de que no sea infinito. } } }
private static Analize[] GetAnalizeResults(string[] allAssemblies) { var results = new List <Analize>(); foreach (var item in allAssemblies) { try { var analize = new Analize(); analize.AssemblyPath = item; var asm = Assembly.LoadFile(item); var types = asm.GetTypes(); var typeResult = new List <AnalizedType>(); foreach (var type in types) { var typeDetails = new AnalizedType(); typeDetails.Name = type.FullName; var constructor = type.GetConstructors().OrderByDescending(c => c.GetParameters().Length).FirstOrDefault(); if (constructor != null) { typeDetails.ConstructorParametersCount = constructor.GetParameters().Length; } typeResult.Add(typeDetails); } analize.Result = typeResult.ToArray(); } catch { } } return(results.ToArray()); }
public ViewModelAddAnalize(NavigationController controller) : base(controller) { IsAnalizeLoadedVisibility = Visibility.Hidden; CurrentPanelViewModel = new AnalizePanelViewModel(this); OpenCommand = new DelegateCommand(() => { CurrentPanelViewModel.ClearPanel(); CurrentPanelViewModel.PanelOpened = true; }); SaveCommand = new DelegateCommand(() => { var newType = CurrentPanelViewModel.GetPanelType(); if (!string.IsNullOrWhiteSpace(newType.Str)) { CurrentPanelViewModel.PanelOpened = false; Handled = false; Data.AnalizeType.Add((newType)); Data.Complete(); var DataSourceListbuf = AnalizeTypes; AnalizeTypes = new ObservableCollection<AnalizeType>(); foreach (var HirurgInterupType in Data.AnalizeType.GetAll) { AnalizeTypes.Add(HirurgInterupType); } SelectedIndexOfAnalizeType = AnalizeTypes.Count - 1; //foreach (var RecomendationsType in Data.OperationForAmbulatornCard.GetAll) //{ // DataSourceList.Add(new OperationForAmbullatorCardDataSource(RecomendationsType)); //} Controller.NavigateTo<ViewModelAddAnalize>(); } else { MessageBox.Show("Не все поля заполнены"); } }); RevertCommand = new DelegateCommand(() => { CurrentPanelViewModel.PanelOpened = false; Handled = false; }); Analize = new Analize(); TextOFNewType = "Новый анализ"; AnalizeTypes = new ObservableCollection<AnalizeType>(); foreach (var AnalizeType in Data.AnalizeType.GetAll) { AnalizeTypes.Add(AnalizeType); } // AnalizeType = Data.AnalizeType.Get(Analize.analyzeType); HasNavigation = false; ButtonName = "Добавить анализ"; MessageBus.Default.Subscribe("GetPatientForAnalize", SetCurrentPatientID); ToCurrentPatient = new DelegateCommand( () => { if (AnalizeTypes.Count != 0) { Analize.analyzeType = AnalizeTypes[SelectedIndexOfAnalizeType].Id; if (Analize.ImageByte == null) { MessageBox.Show("Загрузите фото анализа"); } else { Data.Analize.Add(Analize); Data.Complete(); MessageBus.Default.Call("GetPatientForAnalizeOverview", this, CurrentPatient.Id); MessageBus.Default.Call("GetAnalizeForAnalizeOverview", this, Analize.Id); Controller.NavigateTo<ViewModelAnalizeOverview>(); Analize = new Analize(); } } else { MessageBox.Show("Добавьте тип анализа"); } } ); ToCurrentPatientRealy = new DelegateCommand( () => { MessageBus.Default.Call("GetCurrentPatientId", this, CurrentPatient.Id); Controller.NavigateTo<ViewModelCurrentPatient>(); } ); OpenAnalizePicture = new DelegateCommand( () => { OpenFileDialog op = new OpenFileDialog(); op.Title = "Выберите файл анализа"; op.Filter = "Image,Word|*.jpg;*.jpeg;*.png;*.docx|" + "JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|" + "Portable Network Graphic (*.png)|*.png|Word Documents (.docx)|*.docx|All Files (*.*)|*.*"; if (op.ShowDialog() == true) { if (op.SafeFileName.Contains(".docx")) { byte[] bteToBD = File.ReadAllBytes(op.FileName); Analize.ImageByte = bteToBD; } else if (op.SafeFileName.Contains(".jpg") || op.SafeFileName.Contains(".jpeg") || op.SafeFileName.Contains(".png") || op.SafeFileName.Contains(".JPG") || op.SafeFileName.Contains(".JPEG") || op.SafeFileName.Contains(".PNG")) { Analize.ImageByte = ImageToByte(new BitmapImage(new Uri(op.FileName))); } IsAnalizeLoadedVisibility = Visibility.Visible; } } ); }
private void toolStripButton1_Click(object sender, EventArgs e) { // check file info and extension if (labelFileName.Text == newFile) { MessageBox.Show("Previously save current file with .k65 extension"); return; } else if (labelFileName.ForeColor == Color.Red) { MessageBox.Show("Previously save file"); return; } if (Path.GetExtension(labelFileName.Text) != ".k65") { MessageBox.Show("File must be with \'.k65\' extension"); return; } // build file // get token list List <KeyWordToken> keyWordTokens = new List <KeyWordToken>(); List <Letters> lettersTable = new List <Letters>(); List <Identifier> identTable = new List <Identifier>(); try { using (StreamReader reader = new StreamReader(labelFileName.Text)) { keyWordTokens = Analize.AnalisisTokens(reader); } } catch (Exception ex) { MessageBox.Show($"System Error: {ex}"); return; } // create resources folder var localFolder = Path.GetDirectoryName(labelFileName.Text); string resourceFolder = localFolder + "\\" + Path.GetFileNameWithoutExtension(labelFileName.Text); Directory.CreateDirectory(resourceFolder); // error checking string errorMessages = ""; int errorNumber = 0; string errorFilePath = Path.Combine(resourceFolder, errorReport); try { using (StreamWriter writer = new StreamWriter(errorFilePath)) { (errorNumber, lettersTable, identTable) = Analize.ErrorChecking(writer); } using (StreamReader reader = new StreamReader(errorFilePath)) { errorMessages = reader.ReadToEnd(); } } catch (Exception ex) { MessageBox.Show($"System Error: {ex}"); return; } // check if error exists if (errorNumber != 0) { // show form with error and tokens BuildForm buildForm = new BuildForm(); buildForm.lexemGrid.DataSource = keyWordTokens; buildForm.lettersGrid.DataSource = lettersTable; buildForm.identGrid.DataSource = identTable; buildForm.errorOutput.Text = errorMessages; buildForm.fileLink.Enabled = false; buildForm.runButton.Enabled = false; buildForm.Show(); } else { // show form with error and tokens BuildForm buildForm = new BuildForm(); buildForm.lexemGrid.DataSource = keyWordTokens; buildForm.lettersGrid.DataSource = lettersTable; buildForm.identGrid.DataSource = identTable; buildForm.errorOutput.Text = "Error not found."; buildForm.fileLink.Enabled = true; buildForm.fileResources = resourceFolder; buildForm.Show(); // generate code string codeFile = resourceFolder + "\\" + Path.GetFileNameWithoutExtension(labelFileName.Text) + ".asm"; try { using (StreamWriter writer = new StreamWriter(codeFile)) { Analize.GenerateCode(writer); } buildForm.asmFile = codeFile; } catch (Exception ex) { MessageBox.Show($"Asm code was not generated: {ex.Message}"); return; } // build and run program } }