예제 #1
0
    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.
            }
        }
    }
예제 #2
0
        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());
        }
예제 #3
0
        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;
                 }

             }
         );
        }
예제 #4
0
파일: Form1.cs 프로젝트: X-Worm/SPZ_Course
        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
            }
        }