/*
         * Séquences
         */

        // Séquence 1
        // - Test la condition
        //   - Celle-ci est fausse, on passe à la dernière séquence
        //   - Celle-ci est vrai, on passe au premier bloc interne
        public String  Séquence_1()
        {
            String code;

            code = "  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID) + " then\n";
            if (__conditionDEntré.codeDInitialisationPourLeSéquenceur != "")
            {
                code += "    " + __conditionDEntré.codeDInitialisationPourLeSéquenceur + "\n";
            }
            code += "    if " + __conditionDEntré.codePourLeSéquenceur + " then\n";
            if (__blocsInternes == null)
            {
                code += "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UIDDeLaDernièreSéquence) + "\n";
            }
            else
            {
                code += "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(__blocsInternes.premierBloc.UID) + "\n";
            }
            code += "    else\n";
            if (__blocsInternesSupplémentaires == null)
            {
                code += "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UIDDeLaDernièreSéquence) + "\n";
            }
            else
            {
                code += "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(__blocsInternesSupplémentaires.premierBloc.UID) + "\n";
            }
            code += "    end\n" +
                    "  end";
            return(code);
        }
        /*
         * Séquences
         */

        // Séquence 1
        // - Test la condition
        //     - Si celle-ci est vrai, passe au premier bloc interne
        //     - Si celle-ci est fausse, passe au bloc suivant
        public String  Séquence_1()
        {
            String code = "";


            if (__blocsInternes != null)
            {
                code += "  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID) + " then\n";
                if (__conditionDeBoucle.codeDInitialisationPourLeSéquenceur != "")
                {
                    code += "    " + __conditionDeBoucle.codeDInitialisationPourLeSéquenceur + "\n;";
                }
                code += "    if " + __conditionDeBoucle.codePourLeSéquenceur + " then\n" +
                        "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(__blocsInternes.premierBloc.UID) + "\n" +
                        "    else\n" +
                        "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UIDDuBlocSuivant) + "\n" +
                        "    end\n" +
                        "  end";
            }
            else
            {
                code += "  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID) + " then\n";
                if (__conditionDeBoucle.codeDInitialisationPourLeSéquenceur != "")
                {
                    code += "    " + __conditionDeBoucle.codeDInitialisationPourLeSéquenceur + "\n;";
                }
                code += "    if " + __conditionDeBoucle.codePourLeSéquenceur + " then\n" +
                        "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UID + 1) + "\n" +
                        "    else\n" +
                        "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UIDDuBlocSuivant) + "\n" +
                        "    end\n" +
                        "  end";
            }
            return(code);
        }
コード例 #3
0
        /*
         * Séquences
         */

        // Séquence 1
        // - Allume les LEDs
        // - Passe au bloc suivant
        public String  Séquence_1()
        {
            return("  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID) + " then\n" +
                   "    " + __LED.code(__led, __couleur) + "\n" +
                   "    __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UIDDuBlocSuivant) + "\n" +
                   "  end");
        }
コード例 #4
0
        /*
         * Séquences
         */

        // Séquence 1
        // - Test la condition
        //   - Celle-ci est fausse, on passe à la dernière séquence
        //   - Celle-ci est vrai, on passe au premier bloc interne
        public String  Séquence_1()
        {
            String code;



            if (__blocsInternes != null)
            {
                code = "  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID) + " then\n";
                if (__conditionDEntré.codeDInitialisationPourLeSéquenceur != "")
                {
                    code += "    " + __conditionDEntré.codeDInitialisationPourLeSéquenceur + "\n";
                }
                code += "    if " + __conditionDEntré.codePourLeSéquenceur + " then\n" +
                        "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UID + 1) + "\n" +
                        "    else\n" +
                        "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(__blocsInternes.premierBloc.UID + __blocsInternes.nombreDeSéquence) + "\n" +
                        "    end\n" +
                        "  end";
                return(code);
            }
            else
            {
                return("  " + Compilateur.codeSauteSéquence(UIDDuSéquenceur, UID, UID + 2));
            }
        }
        /*
         * Séquences
         */

        // Séquence 1
        // - Initialise le nombre de boucle, passe au bloc suivant
        public String  Séquence_1()
        {
            return("  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID) + " then\n" +
                   "    __boucle[" + (__UIDDeBoucle - 1) + "]=" + __nombreDeBoucle + "\n" +
                   "    __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UID + 1) + "\n" +
                   "  end");
        }
コード例 #6
0
        /*
         * Séquences
         */

        // Séquence 1
        // - Allume les moteurs
        // - Passe au bloc suivant
        public String  Séquence_1()
        {
            return("  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID) + " then\n" +
                   "    " + __MOTEUR.code(__sens, __vitesseAGauche, __vitesseADroite) + "\n" +
                   "    __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UIDDuBlocSuivant) + "\n" +
                   "  end");
        }
コード例 #7
0
        // Séquence 2
        // - Incrémente le chrono
        // - Test la fin du chrono
        //     - Si le chrono est écoulé, éteins les lumières et passe au bloc suivant
        public String  Séquence_2()
        {
            int correctionDeCalibration = 0;

            String code = "";



            if (__vitesse == (int)__MOTEUR.VITESSE.LENTE)
            {
                correctionDeCalibration = 7;
            }

            code += "  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID + 1) + " then\n";

            switch (__sens)
            {
            case (int)__MOTEUR.SENS.EN_AVANT:
                code += "    if __odo.x>" + (__distance * (__MOTEUR.calibration - correctionDeCalibration)) + " then\n";
                break;

            case (int)__MOTEUR.SENS.EN_ARRIERE:
                code += "    if __odo.x<-" + (__distance * (__MOTEUR.calibration - correctionDeCalibration)) + " then\n";
                break;
            }

            code += "      callsub __ArreteLesMoteurs\n" +
                    "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UIDDuBlocSuivant) + "\n" +
                    "    end\n" +
                    "  end";

            return(code);
        }
コード例 #8
0
        /*
         * Séquences
         */

        // Séquence 1
        // - Initialise le chrono à 0
        // - Passe au bloc suivant
        public String  Séquence_1()
        {
            return("  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID) + " then\n" +
                   "    __chrono[" + UIDDuSéquenceur + "]=0\n" +
                   "    __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UID + 1) + "\n" +
                   "  end");
        }
        /*
         * Séquences
         */

        // Séquence 1
        // - Arrête le timer1
        public String  Séquence_1()
        {
            return("  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID) + " then\n" +
                   "    timer.period[1]=0\n" +
                   "    __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UIDDuBlocSuivant) + "\n" +
                   "  end");
        }
コード例 #10
0
        /*
         * Séquences
         */

        // Séquence 1
        // - Modifie la variable __chronomètre
        public String  Séquence_1()
        {
            return("  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID) + " then\n" +
                   "    __chronomètre=" + chronomètre * 1000 + "\n" +
                   "    __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UIDDuBlocSuivant) + "\n" +
                   "  end");
        }
        /*
         * Séquences
         */

        // Séquence 1
        // - Initialise le chrono à 0
        // - Lance l'enregistrement du fichier son à partir du microphone
        public String  Séquence_1()
        {
            return("  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID) + " then\n" +
                   "    __chrono[" + UIDDuSéquenceur + "]=0\n" +
                   "    call sound.record(" + (int)__SONS.SON.DEPUIS_LE_MICROPHONE + ")\n" +
                   "    __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UID + 1) + "\n" +
                   "  end");
        }
        /*
         * Séquences
         */

        // Séquence 1
        // - Initialise le chrono à 0
        // - Joue la fréquence demandée
        public String  Séquence_1()
        {
            return("  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID) + " then\n" +
                   "    __chrono[" + UIDDuSéquenceur + "]=0\n" +
                   "    call sound.freq(" + __fréquence + ", " + (int)(__durée * 60) + ")\n" +
                   "    __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UID + 1) + "\n" +
                   "  end");
        }
 // Séquence 2
 // - Test la fin de la leccture du son
 //     - Si la lecture du son est terminée, passe au bloc suivant
 public String  Séquence_2()
 {
     return("  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID + 1) + " then\n" +
            "    if __lectureDUnSon==0 then\n" +
            "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UIDDuBlocSuivant) + "\n" +
            "    end\n" +
            "  end");
 }
コード例 #14
0
 // Séquence 2
 // - Incrémente le chrono
 // - Test la fin du chrono
 //     - Si le chrono est écoulé, passe au bloc suivant
 public String  Séquence_2()
 {
     return("  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID + 1) + " then\n" +
            "    __chrono[" + UIDDuSéquenceur + "]++\n" +
            "    if __chrono[" + UIDDuSéquenceur + "]>=" + (int)(__durée * 100) + " then\n" +
            "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UIDDuBlocSuivant) + "\n" +
            "    end\n" +
            "  end");
 }
コード例 #15
0
        /*
         * Séquences
         */

        // Séquence 1
        // - Enregistre la valeur dans la variable
        // - Passe au bloc suivant
        public String  Séquence_1()
        {
            String code;



            code = "  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID) + " then\n";
            if (__expression.codeDInitialisationPourLeSéquenceur != "")
            {
                code += "    " + __expression.codeDInitialisationPourLeSéquenceur + "\n";
            }
            code += "    " + __Variable.code(__nom) + "=" + __expression.codePourLeSéquenceur + "\n" +
                    "    __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UIDDuBlocSuivant) + "\n" +
                    "  end";

            return(code);
        }
 // Séquence 2
 // - Décrémente le nombre de boucle
 //   - Si le nombre de boucle est >0, passe au premier bloc interne
 //   - Si le nombre de boucle est =0, passe au bloc de fin
 public String  Séquence_2()
 {
     if (__blocsInternes != null)
     {
         return("  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID + 1) + " then\n" +
                "    __boucle[" + (__UIDDeBoucle - 1) + "]--\n" +
                "    if __boucle[" + (__UIDDeBoucle - 1) + "]>0 then\n" +
                "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(__blocsInternes.premierBloc.UID) + "\n" +
                "    else\n" +
                "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UIDDuBlocSuivant) + "\n" +
                "    end\n" +
                "  end");
     }
     else
     {
         return("  " + Compilateur.codeSauteSéquence(UIDDuSéquenceur, UID + 1, UIDDuBlocSuivant));
     }
 }
        /*
         * Séquences
         */

        // Séquence 1
        // - Joue le son demandé
        // - Passe à la séquence suivante
        public String  Séquence_1()
        {
            String code;

            code = "  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID) + " then\n";

            if (__son == (int)__SONS.SON.DEPUIS_LE_MICROPHONE)
            {
                code += "    __lectureDUnSon=1\n" +
                        "    call sound.replay(" + __son + ")\n";
            }
            else
            {
                code += "    __son = " + __son + "\n" +
                        "    callsub __JoueUnSon\n";
            }
            code += "    __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UID + 1) + "\n" +
                    "  end";

            return(code);
        }
コード例 #18
0
        // Séquence 3
        // - Passe au premier bloc du groupe
        public String  Séquence_3()
        {
            String code = "";

            if (Compilateur.afficherLesCommentaires)
            {
                code += "  # (UID " + __UID + " FIN) Instruction Blockly : " + __nomDansBlockly + "\n";
            }

            if (__blocsInternes != null)
            {
                code += "  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(__blocsInternes.premierBloc.UID + __blocsInternes.nombreDeSéquence) + " then\n";
                if (__conditionDeBoucle.codeDInitialisationPourLeSéquenceur != "")
                {
                    code += "    " + __conditionDeBoucle.codeDInitialisationPourLeSéquenceur + "\n";
                }
                code += "    if " + __conditionDeBoucle.codePourLeSéquenceur + " then\n" +
                        "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UID) + "\n" +
                        "    else\n" +
                        "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UIDDuBlocSuivant) + "\n" +
                        "    end\n" +
                        "  end";
            }
            else
            {
                code += "  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID + 1) + " then\n";
                if (__conditionDeBoucle.codeDInitialisationPourLeSéquenceur != "")
                {
                    code += "    " + __conditionDeBoucle.codeDInitialisationPourLeSéquenceur + "\n";
                }
                code += "    if " + __conditionDeBoucle.codePourLeSéquenceur + " then\n" +
                        "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UID) + "\n" +
                        "    else\n" +
                        "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UIDDuBlocSuivant) + "\n" +
                        "    end\n" +
                        "  end";
            }

            return(code);
        }
        /*
         * Séquences
         */

        // Séquence 1
        // - Fait tourner les moteurs pour que le robot exécute une rotation
        // - Passe au bloc suivant
        public String  Séquence_1()
        {
            String code = "";


            code += "  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID) + " then\n";

            switch (__sens)
            {
            case (int)__MOTEUR.TOURNE.A_DROITE:
                code += "    motor.left.target=" + (int)__MOTEUR.VITESSE.NORMALE + " motor.right.target=-" + (int)__MOTEUR.VITESSE.NORMALE + "\n";
                break;

            case (int)__MOTEUR.TOURNE.A_GAUCHE:
                code += "    motor.left.target=-" + (int)__MOTEUR.VITESSE.NORMALE + " motor.right.target=" + (int)__MOTEUR.VITESSE.NORMALE + "\n";
                break;
            }
            code += "    __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UID + 1) + "\n" +
                    "  end";

            return(code);
        }
コード例 #20
0
        /*
         * Séquences
         */

        // Séquence 1
        // - Initialise le chrono à 0
        // - Allume les lumières
        public String  Séquence_1()
        {
            String code = "";


            code += "  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID) + " then\n";

            switch (__sens)
            {
            case (int)__MOTEUR.SENS.EN_AVANT:
                code += "    motor.left.target=" + __vitesse + " motor.right.target=" + __vitesse + "\n";
                break;

            case (int)__MOTEUR.SENS.EN_ARRIERE:
                code += "    motor.left.target=-" + __vitesse + " motor.right.target=-" + __vitesse + "\n";
                break;
            }

            code += "    __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UID + 1) + "\n" +
                    "  end";

            return(code);
        }
        // Séquence 2
        // - Test l'angle de rotation
        //     - Si l'angele de rotation est atteins, arrête les moteurs et passe au bloc suivant
        public String  Séquence_2()
        {
            String code = "";


            code += "  if __sequenceur[" + UIDDuSéquenceur + "]==" + Compilateur.ComplèteÀZéro(UID + 1) + " then\n";

            switch (__sens)
            {
            case (int)__MOTEUR.TOURNE.A_DROITE:
                code += "    if __odo.degre==-" + __angle + " then\n";
                break;

            case (int)__MOTEUR.TOURNE.A_GAUCHE:
                code += "    if __odo.degre==" + __angle + " then\n";
                break;
            }
            code += "      callsub __ArreteLesMoteurs\n" +
                    "      __sequenceur[" + UIDDuSéquenceur + "]=" + Compilateur.ComplèteÀZéro(UIDDuBlocSuivant) + "\n" +
                    "    end\n" +
                    "  end";

            return(code);
        }