protected void btnSi_Click(object sender, EventArgs e)
 {
     if (Si != null)
     {
         Si.Invoke(this, e);
     }
 }
Exemple #2
0
        public static void Main(string[] args)
        {
            var S   = Console.ReadLine();
            var K   = ReadInt();
            var ans = Enumerable.Range(0, K).Aggregate(S, (Si, _) => String.Concat(Si.Skip(1)) + Si[0].ToString());

            Print(ans);
        }
Exemple #3
0
        public void ClassFactory_ResolveSingleton_Does_Not_Throw_When_Singleton_Was_Registered_Via_RegisterInstance()
        {
            var si = new Si();

            _ClassFactory.RegisterInstance <ISi>(si);

            var singleton = _ClassFactory.ResolveSingleton <ISi>();

            Assert.AreSame(si, singleton);
        }
Exemple #4
0
 // sendData
 public void sendString(Si sim)
 {
     try
     {
         client.Send(getBytes(sim), getBytes(sim).Length, remoteEndPoint);
     }
     catch (Exception err)
     {
         Console.WriteLine(err.ToString());
     }
 }
 public void Ejecutar(Persona p)
 {
     if (Condicion(p))
     {
         Si.Ejecutar(p);
     }
     else
     {
         No.Ejecutar(p);
     }
 }
Exemple #6
0
    byte[] getBytes(Si str)
    {
        int size = Marshal.SizeOf(str);

        byte[] arr = new byte[size];

        IntPtr ptr = Marshal.AllocHGlobal(size);

        Marshal.StructureToPtr(str, ptr, true);
        Marshal.Copy(ptr, arr, 0, size);
        Marshal.FreeHGlobal(ptr);
        return(arr);
    }
 /// <summary>
 /// Establece un automata donde contenedremos todas las gramaticas clases que se establecieron
 /// </summary>
 public Lenguaje()
 {
     //Establecemos una lista de las gramaticas que contiene el automata
     gramaticas[0]  = new And();
     gramaticas[1]  = new Boolean_();
     gramaticas[2]  = new Cadena();
     gramaticas[3]  = new Chart();
     gramaticas[4]  = new Colon();
     gramaticas[5]  = new ComentarioUnaLinea();
     gramaticas[6]  = new ComentarioVariasLineas();
     gramaticas[7]  = new Comparacion();
     gramaticas[8]  = new Decimal_();
     gramaticas[9]  = new Desde();
     gramaticas[10] = new Diferente();
     gramaticas[11] = new Disminuir();
     gramaticas[12] = new Division();
     gramaticas[13] = new Entero();
     gramaticas[14] = new Hacer();
     gramaticas[15] = new Hasta();
     gramaticas[16] = new Igual();
     gramaticas[17] = new Incrementar();
     gramaticas[18] = new Incremento();
     gramaticas[19] = new Mayor();
     gramaticas[20] = new MayorIgual();
     gramaticas[21] = new Menor();
     gramaticas[22] = new MenorIgual();
     gramaticas[23] = new Mientras();
     gramaticas[24] = new Multiplicacion();
     gramaticas[25] = new Negacion();
     gramaticas[26] = new Or();
     gramaticas[27] = new ParentesisAbrir();
     gramaticas[28] = new ParentesisCerrar();
     gramaticas[29] = new Resta();
     gramaticas[30] = new Si();
     gramaticas[31] = new Sino();
     gramaticas[32] = new Sino_Si();
     gramaticas[33] = new Suma();
 }
Exemple #8
0
    private Si sendData()
    {
        Si        sim       = new Si();
        Rigidbody rigidBody = GetComponent <Rigidbody>();

        // Acceleration (requires smoothing due to positional rounding errors).
        Vector3 accelerazione;

        LinearAcceleration(out accelerazione, transform.position, accelQueueLen);
        accelerazione *= accelQueueLen - 1;
        Vector3 accelerazioneOk = ConvertRightHandedToLeftHandedVector(accelerazione);


        //se sto per fermarmi evito strani valori di accelerazione, la porto a zero con un'interpolazione lineare, evitando picchi improvvisi e movimenti strani della piattaforma
        if (rigidBody.velocity.magnitude < 1f && vehicleController.accellInput <= 0) //l0accelerazione sta scendendo perchè sto frenando o non accelerando
        {
            if (accelerazioneCorrente == Vector3.zero)
            {
                accelerazioneCorrente = accelerazioneOk;
            }
            accelerazioneOk.x     = Mathf.Lerp(accelerazioneCorrente.x, 0f, Time.fixedDeltaTime * _pidPars.violenzaPiattaforma);
            accelerazioneOk.y     = Mathf.Lerp(accelerazioneCorrente.y, 0f, Time.fixedDeltaTime * _pidPars.violenzaPiattaforma);
            accelerazioneCorrente = accelerazioneOk;
        }
        else
        {
            if (accelerazioneCorrente != Vector3.zero)
            {
                accelerazioneCorrente = Vector3.zero;
            }
        }

        //setto i valori giusti di accelerazione nella struttura
        sim.Accel.X = accelerazioneOk.x;
        sim.Accel.Y = accelerazioneOk.y;
        sim.Accel.Z = accelerazioneOk.z;


        //Velocity
        Vector3 velocityOk = ConvertRightHandedToLeftHandedVector(rigidBody.velocity);

        sim.Vel.X = velocityOk.x;
        sim.Vel.Y = velocityOk.y;
        sim.Vel.Z = velocityOk.z;

        //AngularVelocity
        Vector3 angularVelocityOk = ConvertRightHandedToLeftHandedVector(rigidBody.angularVelocity);

        sim.AngVel.X = angularVelocityOk.x;
        sim.AngVel.Y = angularVelocityOk.y;
        sim.AngVel.Z = angularVelocityOk.z;

        //Time
        //c += (uint) Time.fixedDeltaTime;
        sim.Time = tempo;
        tempo++;

        //Position
        Vector3 posizioneOk = ConvertRightHandedToLeftHandedVector(transform.position);

        sim.Pos.X = posizioneOk.x;
        sim.Pos.Y = posizioneOk.y;
        sim.Pos.Z = posizioneOk.z;

        //orientation: heading, roll, pitch
        Vector3 angoliEulero = ConvertRightHandedToLeftHandedQuaternion(transform.rotation);

        sim.Heading = angoliEulero.z * 3.14159f / 180f;
        sim.Roll    = angoliEulero.x * 3.14159f / 180f;
        sim.Pitch   = angoliEulero.y * 3.14159f / 180f;


        double accelerazioneLaterale      = ((Math.Cos(angoliEulero.x) * accelerazioneOk.x + Math.Sin(angoliEulero.x) * accelerazioneOk.y));  // / 9.81f);
        double accelerazioneLongitudinale = ((-Math.Sin(angoliEulero.x) * accelerazioneOk.x + Math.Cos(angoliEulero.x) * accelerazioneOk.y)); // / 9.81f);

        lastLong = accelerazioneLongitudinale;
        lastLat  = accelerazioneLaterale;

        sim.gameId = 0;

        return(sim);
    }
Exemple #9
0
        private void cmboStyles_SelectedIndexChanged(object sender, EventArgs e)
        {
            ComboBox oCmbo = (ComboBox)sender;
            DataRow  Row   = null;

            if (oCmbo != null && formloaded)
            {
                using (var context = new TTI2Entities())
                {
                    var SelectedCustomer = (TLADM_CustomerFile)cmboCustomer.SelectedItem;
                    if (SelectedCustomer == null)
                    {
                        MessageBox.Show("Please select a customer from the drop down box", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    if (!dataGridView1.Visible)
                    {
                        dataGridView1.Visible = true;
                    }

                    var SelectedStyle = (TLADM_Styles)oCmbo.SelectedItem;
                    if (SelectedStyle == null)
                    {
                        MessageBox.Show("Please select a style from the drop down box", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    //============================================================
                    //---------Define the datatable
                    //=================================================================
                    DataT = new System.Data.DataTable();
                    DataColumn column;

                    //------------------------------------------------------
                    // Create column 1. // This is Index Position of the measurement in the TLCMT_AuditMeasurent Recorded Table
                    //----------------------------------------------
                    column            = new DataColumn();
                    column.DataType   = typeof(Int32);
                    column.ColumnName = "CMTBFA_Pk";
                    DataT.Columns.Add(column);

                    //-----------------------------------------------------------
                    // Create column 2. // This is the Index position of the measurement
                    //----------------------------------------------
                    column            = new DataColumn();
                    column.DataType   = typeof(int);
                    column.ColumnName = "CMTMP_Pk";
                    column.Caption    = "Measurement Description";

                    DataT.Columns.Add(column);

                    var Measurements = (from AuditM in context.TLCMT_AuditMeasurements
                                        join Measure in context.TLADM_CMTMeasurementPoints on AuditM.CMTBFA_MeasureP_FK equals Measure.CMTMP_Pk
                                        where AuditM.CMTBFA_Customer_FK == SelectedCustomer.Cust_Pk && AuditM.CMTBFA_Style_FK == SelectedStyle.Sty_Id
                                        orderby Measure.CMTMP_DisplayOrder
                                        select AuditM).ToList();

                    //we need to find out the sizes associated with this style
                    //============================================================
                    var Sizes = core.ExtrapNumber(SelectedStyle.Sty_Sizes_PN, context.TLADM_Sizes.Count());

                    var SizeSorted = (from Si in Sizes
                                      join Details in context.TLADM_Sizes
                                      on Si.ToString() equals Details.SI_PowerN.ToString()
                                      orderby Details.SI_DisplayOrder
                                      where !Details.SI_Discontinued
                                      select Si).ToList();

                    foreach (var Size in SizeSorted)
                    {
                        var SizeDetail = context.TLADM_Sizes.FirstOrDefault(x => x.SI_PowerN == Size);
                        if (SizeDetail != null)
                        {
                            if (SizeDetail.SI_Discontinued)
                            {
                                continue;
                            }

                            column              = new DataColumn();
                            column.DataType     = typeof(Decimal);
                            column.DefaultValue = 0.0;
                            column.ColumnName   = SizeDetail.SI_id.ToString();
                            column.Caption      = SizeDetail.SI_Description;

                            DataT.Columns.Add(column);
                        }
                    }

                    var GroupedM = Measurements.GroupBy(x => x.CMTBFA_MeasureP_FK);
                    foreach (var Group in GroupedM)
                    {
                        bool First = true;
                        // int Index = 0;
                        Row = DataT.NewRow();

                        foreach (var Sze in Group)
                        {
                            if (First)
                            {
                                First  = !First;
                                Row[0] = Group.FirstOrDefault().CMTBFA_Pk;
                                Row[1] = Group.FirstOrDefault().CMTBFA_MeasureP_FK;
                            }

                            var Ind = DataT.Columns.IndexOf(Sze.CMTBFA_Size_FK.ToString());
                            if (Ind > 0)
                            {
                                Row[Ind] = Sze.CMTBFA_Measurement;
                            }
                        }
                        DataT.Rows.Add(Row);
                    }

                    dataGridView1.DataSource         = DataT;
                    dataGridView1.Columns[0].Visible = false;
                    int idx = 0;

                    foreach (DataColumn col in  DataT.Columns)
                    {
                        if (++idx > 2)
                        {
                            dataGridView1.Columns[col.ColumnName].HeaderText = col.Caption;
                        }
                    }
                }
            }
        }
Exemple #10
0
 void Carry(string name, GameObject go)
 {
     if (name == DialogB.name)
     {
         DialogB.SetActive(false);
         DialogB.SetActive(true);
         SoundPlayer.Play("Cursor1");
         Msg.Remove(Msg[0]);
     }
     if (name == "ATK")
     {
         BattleStep = 1;
         SkillInfoController Si;
         for (int i = 0; i < 3; i++)
         {
             Si       = SkillBoard.transform.Find("Skill" + (i + 1)).GetComponent <SkillInfoController>();
             Si.BindS = SkillManager.S.Find(m => m.Name == Rounds[0].BindMember.Magics[i]);
             Si.UpdateInfo();
             SkillBoard.transform.Find("InfoText").GetComponent <Text>().text =
                 "MP  " + Rounds[0].BindMember.MP + " / " + Rounds[0].BindMember.MaxMP;
         }
         string TeamStr = "", HColor = "";
         for (int i = 0; i < F1.Count; i++)
         {
             float f = F1[i].BindMember.HP / F1[i].BindMember.MaxHP;
             if (f >= 0.3f)
             {
                 HColor = "orange";
             }
             if (f < 0.3f)
             {
                 HColor = "red";
             }
             if (f >= 0.6f)
             {
                 HColor = "green";
             }
             TeamStr += F1[i].BindMember.Name + "     <color=" + HColor +
                        ">" + F1[i].BindMember.HP + " / " + F1[i].BindMember.MaxHP + "</color>\n";
         }
         SkillBoard.transform.Find("TeamText").GetComponent <Text>().text = TeamStr;
     }
     if (name == "NextBtn")
     {
         //BattleStep = 2;
     }
     if (name == "PrevBtn")
     {
         Debug.Log("Prev");
         BattleStep = 1;
     }
     if (name.StartsWith("Team") && name != "TeamText")
     {
         List <FighterController> lt = F2;
         if (lSk.Strength >= 0)
         {
             lt = F2;
         }
         else
         {
             lt = F1;
         }
         tar = lt.Find(m => m.BindMember.Equals(go.GetComponent <TeamInfoController>().BindMember));
         Msg.Add(Rounds[0].BindMember.Name + "对" + tar.BindMember.Name + "使用了“" + lSk.Name + "”!");
         Rounds[0].State = FighterController.BattleState.Magic;
         BattleStep      = 3;
         ttick           = 0;
     }
     if (name.StartsWith("Skill") && name != "SkillBoard")
     {
         //Debug.Log("Skill?");
         List <FighterController> lt = F2;
         SkillInfoController      Sk = SkillBoard.transform.Find(name).GetComponent <SkillInfoController>();
         SkillManager.Skill       sk = Sk.BindS;
         if (sk.MP > Rounds[0].BindMember.MP)
         {
             MessageCreator.CreateMsg("魔力不足", "你无法使用这个魔法。");
             return;
         }
         lSk = sk;
         //Debug.Log(Sk.name);
         if (lSk.Strength >= 0)
         {
             lt = F2.FindAll(m => m.BindMember.HP > 0);
         }
         else
         {
             lt = F1.FindAll(m => m.BindMember.HP > 0);
         }
         for (int i = 0; i < 4; i++)
         {
             if (i >= lt.Count)
             {
                 Teams[i].SetActive(false);
             }
             else
             {
                 Teams[i].SetActive(true);
                 Teams[i].GetComponent <TeamInfoController>().BindMember = lt[i].BindMember;
                 Teams[i].GetComponent <TeamInfoController>().UpdateInfo();
             }
         }
         BattleStep = 2;
     }
 }
Exemple #11
0
        public Resultado ejecutar(ParseTreeNode raiz)
        {
            Resultado resultado = null;

            foreach (ParseTreeNode hijo in raiz.ChildNodes)
            {
                if (resultado != null)
                {
                    return(resultado);
                }
                String tipoAccion = hijo.Term.Name;
                switch (tipoAccion)
                {
                case "CREARDB":
                    Form1.sistemaArchivos.crearBase(hijo);
                    break;

                case "CREARTABLA":
                    Form1.sistemaArchivos.crearTabla(hijo);
                    break;

                case "CONTAR":
                    Form1.sistemaArchivos.contar(hijo);
                    break;

                case "DECLARACION":    //jose
                    Declaracion declaracion = new Declaracion();
                    Boolean     estado      = declaracion.declaracion(hijo);
                    break;

                case "SELECCIONAR":
                    Form1.sistemaArchivos.realizarConsulta(hijo);
                    break;

                case "RESTAURARBD":
                    Form1.sistemaArchivos.restaurar(hijo);
                    break;

                case "BACKUP":
                    Form1.sistemaArchivos.backup(hijo);
                    break;

                case "USAR":
                    Form1.sistemaArchivos.setBaseActual(hijo.ChildNodes[0]);
                    guardarMetodos(raiz, raizCompleta);
                    break;

                case "IMPRIMIR":
                    opL = new Logica();
                    Form1.Mensajes.Add(opL.operar(hijo.ChildNodes[0]).valor + "");
                    break;

                case "USUARIO":
                    Form1.sistemaArchivos.crearUsuario(hijo);
                    break;

                case "ACTUALIZAR":
                    Form1.sistemaArchivos.actualizar(hijo);
                    break;

                case "ALTERARTABLA":
                    Form1.sistemaArchivos.alterarTabla(hijo);
                    break;

                case "ALTERAROBJETO":
                    Form1.sistemaArchivos.alterarObjeto(hijo);
                    break;

                case "ALTERARUSUARIO":
                    Form1.sistemaArchivos.alterarUsuario(hijo);
                    break;

                case "BORRAR":     // Borrar registro en la tupla
                    Form1.sistemaArchivos.borrar(hijo);
                    break;

                case "INSERTAR":
                    Form1.sistemaArchivos.insertar(hijo);
                    break;

                case "PERMISOS":
                    Form1.sistemaArchivos.permisos(hijo);
                    break;

                case "ELIMINAR":
                    Form1.sistemaArchivos.eliminar(hijo);
                    break;

                case "CREAROBJETO":    //jose
                    String        nombreObjeto = hijo.ChildNodes[0].Token.Text;
                    ParseTreeNode atributos    = hijo.ChildNodes[1];
                    Objeto        objeto       = new Objeto(nombreObjeto);
                    foreach (ParseTreeNode nodoAtributo in atributos.ChildNodes)
                    {
                        Atributo atributo = new Atributo(nodoAtributo.ChildNodes[0].ChildNodes[0].Token.Text, nodoAtributo.ChildNodes[1].Token.Text, null);
                        objeto.addAtributo(atributo);
                    }
                    Form1.sistemaArchivos.getBase().agregarObjeto(objeto, hijo.Span.Location.Line, hijo.Span.Location.Column);
                    break;

                case "ASIGNAROBJ":
                    Asignacion asignacion = new Asignacion();
                    asignacion.asignar(hijo);
                    break;

                case "LLAMADA":
                    nivel++;
                    Llamada   llamada = new Llamada(this);
                    Resultado r       = llamada.ejecutar(hijo);
                    nivel--;
                    break;

                case "RETORNO":
                    opL       = new Logica();
                    resultado = opL.operar(hijo.ChildNodes[0]);
                    return(resultado);

                case "SENTSI":
                    Si si = new Si(this);
                    resultado = si.ejecutar(hijo);
                    break;

                case "MIENTRAS":
                    Mientras mientras = new Mientras(this);
                    resultado = mientras.ejecutar(hijo);
                    break;

                case "DETENER":
                    resultado         = new Resultado("Error", null);
                    resultado.detener = true;
                    return(resultado);

                case "PARA":
                    Para para = new Para(this);
                    resultado = para.ejecutar(hijo);
                    break;

                case "SENTSELECCIONA":
                    Selecciona selecciona = new Selecciona(this);
                    resultado = selecciona.ejecutar(hijo);
                    break;
                }
            }
            return(resultado);
        }
Exemple #12
0
    public void Ejecutar()
    {
        try
        {
            //Dialog.MyInstance.enviarMensaje("Probando consola :)\nbla bla");
            //EditorScript.MyInstance.siCompleto == false || EditorScript.MyInstance.sinoCompleto == false

            bool siFull     = true;
            bool sinoFull   = true;
            int  posicionSi = 0;
            int  contSi     = 0; //Si la cuenta llega hasta 3 está completo.
            bool faltaTile  = false;

            //se analizan las lineas y bloques para buscar donde está incompleto
            for (int i = 0; i < EditorScript.MyInstance.lineas.Count; i++)
            {
                foreach (ActScript acto in EditorScript.MyInstance.lineas[i].actosLinea)
                {
                    if (acto.item is Si)
                    {
                        Si siaux = (Si)acto.item;
                        //Debug.Log(siaux.siType.ToString());
                        if (siaux.siType.ToString() == "Si")
                        {
                            siFull     = false;
                            posicionSi = i;
                            contSi++;
                        }
                        else if (siaux.siType.ToString() == "Ojo")
                        {
                            contSi++;
                            faltaTile = true;
                        }
                        else if (siaux.siType.ToString() == "TileGrass" || siaux.siType.ToString() == "TileSand" || siaux.siType.ToString() == "TileTree" || siaux.siType.ToString() == "TileWater")
                        {
                            faltaTile = false;
                            contSi++;
                        }
                        else if (siaux.siType.ToString() == "FinSi" && contSi == 3)
                        {
                            siFull = true;
                            contSi = 0;
                        }
                        else if (siaux.siType.ToString() == "Sino")
                        {
                            sinoFull   = false;
                            posicionSi = i;
                        }
                        else if (siaux.siType.ToString() == "FinSino")
                        {
                            sinoFull = true;
                        }
                        else if (siaux.siType.ToString() == "FinSi" && contSi < 3)
                        {
                            Debug.Log("Fin Si mal posicionado en la linea " + (i + 1));
                            Dialog.MyInstance.enviarMensaje("Fin Si mal posicionado en la linea " + (i + 1) + "\n");
                            EditorScript.MyInstance.activarErrorLinea(i);
                            error = true;
                            Thread.Sleep(100);
                        }
                        // if ((Si)acto.item.)
                    }

                    /* else if(acto.item is CmdMover){
                     *   CmdMover mov= (CmdMover)acto.item;
                     *   Debug.Log(mov.moveType.ToString());
                     * }*/
                }
            }

            if (contSi == 1)     // solo se puso el si
            {
                Dialog.MyInstance.enviarMensaje("Falta condición en la línea " + (posicionSi + 1) + "\n");
                Debug.Log("Falta condición en la línea " + (posicionSi + 1));
                EditorScript.MyInstance.activarErrorLinea(posicionSi);
                error = true;
                Thread.Sleep(100);
                //EditorScript.MyInstance.numLinea.transform.GetChild(posicion).GetComponent<>;
            }
            if (contSi == 2 && faltaTile)
            {
                Dialog.MyInstance.enviarMensaje("Falta código de terreno en la línea " + (posicionSi + 1) + "\n");
                Debug.Log("Falta código de terreno en la línea " + (posicionSi + 1));
                EditorScript.MyInstance.activarErrorLinea(posicionSi);
                error = true;
                Thread.Sleep(100);
            }
            if (siFull == false)
            {
                Dialog.MyInstance.enviarMensaje("Falta cerrar el Si de la línea " + (posicionSi + 1) + "\n");
                Debug.Log("Falta cerrar el Si de la línea " + (posicionSi + 1));
                EditorScript.MyInstance.activarErrorLinea(posicionSi);
                error = true;
                Thread.Sleep(100);
            }
            if (sinoFull == false)
            {
                Dialog.MyInstance.enviarMensaje("Falta cerrar el Sino de la línea " + (posicionSi + 1) + "\n");
                Debug.Log("Falta cerrar el Sino de la línea " + (posicionSi + 1));
                EditorScript.MyInstance.activarErrorLinea(posicionSi);
                error = true;
                Thread.Sleep(100);
            }



            if (!error)
            {
                bool condicionSi = true;
                numlinea.NumLineaClick = -1;
                for (int i = 0; i < EditorScript.MyInstance.lineas.Count; i++)
                {
                    if (EditorScript.MyInstance.detalles[i].estaClickeado())
                    {
                        EditorScript.MyInstance.detalles[i].desclickPanel();
                    }
                    if (i != EditorScript.MyInstance.lineas.Count - 1)
                    {
                        EditorScript.MyInstance.cambiarColorEjecucion(i);
                    }

                    foreach (ActScript acto in EditorScript.MyInstance.lineas[i].actosLinea)
                    {
                        item = acto.item;
                        //Debug.Log(item is Si);

                        if (item is Si)
                        {
                            //Debug.Log("si");
                            Si si = (Si)item;

                            if (si.siType.ToString() == "Si")
                            {
                                //contSi++;
                            }
                            else if (si.siType.ToString() == "Sino")
                            {
                            }
                            else if (si.siType.ToString() == "Ojo")
                            {
                            }
                            else if (si.siType.ToString() == "TileGrass")
                            {
                                if (player.terrenoDelante == "pasto")
                                {
                                    condicionSi = true;
                                }
                                else
                                {
                                    condicionSi = false;
                                    Debug.Log("El terreno delante no es pasto, es " + player.terrenoDelante);
                                }
                            }
                            else if (si.siType.ToString() == "TileSand")
                            {
                                if (player.terrenoDelante == "tierra")
                                {
                                    condicionSi = true;
                                }
                                else
                                {
                                    condicionSi = false;
                                }
                            }
                            else if (si.siType.ToString() == "TileTree")
                            {
                                if (player.terrenoDelante == "arbol")
                                {
                                    condicionSi = true;
                                }
                                else
                                {
                                    condicionSi = false;
                                }
                            }
                            else if (si.siType.ToString() == "TileWater")
                            {
                                if (player.terrenoDelante == "agua")
                                {
                                    condicionSi = true;
                                }
                                else
                                {
                                    condicionSi = false;
                                }
                            }
                            else if (si.siType.ToString() == "FinSi")
                            {
                                condicionSi = true; //para que siga avanzando las instrucciones despues del finsi
                            }
                            Thread.Sleep(250);
                        }
                        else if (item is CmdMover && condicionSi)
                        {
                            CmdMover mov = (CmdMover)item;
                            //Debug.Log("stack "+act.miStack);
                            for (int j = 0; j < acto.miStack; j++)
                            {
                                if (mov.moveType.ToString() == "MoverAdelante")
                                {
                                    //Debug.Log("hola cmdmover " + item.MyTitle);
                                    _t1Paused = false;
                                    player.moverAdelante();
                                    Thread.Sleep(1000);

                                    /*while (_t1Paused)
                                     * {
                                     * }*/
                                }
                                else if (mov.moveType.ToString() == "GirarDerecha")
                                {
                                    //_t1Paused = true;
                                    player.GirarDerecha();
                                    Thread.Sleep(500);
                                }
                                else if (mov.moveType.ToString() == "GirarIzquierda")
                                {
                                    //Debug.Log("in");
                                    //_t1Paused = true;
                                    player.GirarIzquierda();


                                    Thread.Sleep(500);
                                }
                                else if (mov.moveType.ToString() == "MoverAtras")
                                {
                                    _t1Paused = false;
                                    player.moverAtras();
                                    Thread.Sleep(1000);
                                }
                            }
                            //Debug.Log(mov.moveType.ToString());
                        }
                    } //end foreach
                    if (i != EditorScript.MyInstance.lineas.Count - 1)
                    {
                        EditorScript.MyInstance.cambiarColorEjecucion(i);
                        Thread.Sleep(50);
                    }
                } // end for

                Dialog.MyInstance.enviarMensaje("Código ejecutado correctamente \n");
                Debug.Log("thread ejecutado correctamente");
                threadTerminado = true;
            }
            else
            {
                threadTerminado = true;
                error           = false;
            }
        }
        catch (ThreadAbortException ex)
        {
            Dialog.MyInstance.enviarMensaje("Ejecución abortada \n");
            Debug.Log("Thread es abortado " + ex.ExceptionState);
        }
    }
Exemple #13
0
    public void AddActClickDerecho(IUseable actUsable)
    {
        EditorScript.MyInstance.desactivarErroresLineas();

        if (actUsable is CmdMover)
        {
            /*  for (int i = 0; i < EditorScript.MyInstance.lineas.Count; i++)
             * {
             *    foreach (ActScript acto in EditorScript.MyInstance.lineas[i].actosLinea)
             *    {
             *        if (acto.item is Si)
             *        {*/

            CmdMover movAnterior = null;

            if (EditorScript.MyInstance.lineas.Count > 1)
            {
                if (EditorScript.MyInstance.lineas[EditorScript.MyInstance.lineas.Count - 2].actosLinea[0].item is CmdMover)
                {
                    movAnterior = (CmdMover)EditorScript.MyInstance.lineas[EditorScript.MyInstance.lineas.Count - 2].actosLinea[0].item;
                }
                else
                {
                    movAnterior = null;
                }
            }

            mov = (CmdMover)actUsable; // cuando se genera el mov actual mov va recoger el ultimo item de la lista
                                       //el cual es el que se agrego anteriormente porque este serta el ultimo
                                       // Debug.Log("mov " + mov);
                                       //Debug.Log("movAnt " + movAnterior);
            if (movAnterior != null)
            {
                if (movAnterior.moveType == mov.moveType && EditorScript.MyInstance.lineas[EditorScript.MyInstance.lineas.Count - 2].actosLinea[0].item is CmdMover)
                {
                    //Debug.Log("mi index "+MyIndex);
                    int x = 0;

                    if (Int32.TryParse(EditorScript.MyInstance.inputs[EditorScript.MyInstance.inputs.Count - 1].text, out x))
                    {
                        x = x + 1;
                        EditorScript.MyInstance.inputs[EditorScript.MyInstance.inputs.Count - 1].text   = x.ToString();
                        EditorScript.MyInstance.acts[EditorScript.MyInstance.MyItems.Count - 1].miStack = x;
                        //Debug.Log("1");
                    }
                }
                else
                {
                    addActMov(actUsable);
                }
            }
            else
            {
                addActMov(actUsable);
            }
            //EditorScript.MyInstance.contMov++;//cuenta la cantidad de comandos mov que instancia el usuario
        }
        else if (actUsable is Si)
        {
            si = (Si)actUsable;

            if (si.siType.ToString() == "Si")
            {
                EditorScript.MyInstance.siCompleto = false;
                InventoryScript.MyInstance.SiBloquearBotones();
                EditorScript.MyInstance.AgregarAct();
            }
            else if (si.siType.ToString() == "Ojo")
            {
                InventoryScript.MyInstance.OjoBloquearBotones();
                EditorScript.MyInstance.AgregarAct();
            }
            else if (si.siType.ToString() == "TileGrass" || si.siType.ToString() == "TileSand" || si.siType.ToString() == "TileWater" || si.siType.ToString() == "TileTree")
            {
                InventoryScript.MyInstance.tilesDesbloqueoBotones();
                EditorScript.MyInstance.AgregarLinea();
            }
            else if (si.siType.ToString() == "FinSi")
            {
                EditorScript.MyInstance.siCompleto = true;
                InventoryScript.MyInstance.finSiDesbloq();
                EditorScript.MyInstance.AgregarLinea();
            }
            else if (si.siType.ToString() == "FinSino")
            {
                EditorScript.MyInstance.sinoCompleto = true;
                InventoryScript.MyInstance.finSinoDesbloq();
                EditorScript.MyInstance.AgregarLinea();
            }
            else if (si.siType.ToString() == "Sino")
            {
                EditorScript.MyInstance.sinoCompleto = false;
                InventoryScript.MyInstance.siBloqueoInicial();
                InventoryScript.MyInstance.SinoDesbloq();
                EditorScript.MyInstance.AgregarLinea();
            }



            item     = (Si)actUsable;
            MiUsable = actUsable;

            //EditorScript.MyInstance.AgregarAct();
            EditorScript.MyInstance.MyItems.Add(item);
            SetUseable(actUsable);
        }
    }