/* * Constructeur */ public Valeur_AfficheLaValeur_ENTEntier(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs) { // Déclarations // ------------ String nomDeLAttribut; // Traitements // ----------- // Analyse du Bloc d'instruction foreach (XmlNode XMLDUnNoeudFils in _XMLDuBloc) { nomDeLAttribut = ""; if (XMLDUnNoeudFils.Attributes["name"] != null) { nomDeLAttribut = XMLDUnNoeudFils.Attributes["name"].Value; } switch (nomDeLAttribut) { case "Valeur": __expression = Compilateur.AnalyseUnNoeudDExpression(_UID, XMLDUnNoeudFils.FirstChild, _blocPrécédent, _groupeDeBlocs); break; } } // Liste les séquences du bloc // --------------------------- __séquences.Add((Séquence)Séquence_1); }
/* * 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 // - 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"); }
/* * 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"); }
/* * 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"); }
/* * 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 // - 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"); }
/// <summary> /// Thread séparé pour la compilation /// </summary> private void ThreadDeCompilation(object _sender, EventArgs _e) { temporisationDeCompilation.Stop(); // Affiche l'aide si aucun fichier .b4t n'est envoyé if (Compilateur.nomDuFichierB4T == "") { Compilateur.AfficheLAide(this.TEXT_Messages); return; } // Affiche le texte d'entête Compilateur.AfficheLEntête(this.TEXT_Messages); // Affiche le nom du fichier AjouteUnMessage(String.Format(Messages.Message((int)Messages.TYPE.FICHIER), Compilateur.nomDuFichierB4T) + "\n"); // Lance la compilation. // Si la compilation s'est bien déroulée, le programme se ferme automatiquement if (Compilateur.Compile(this)) { // Message : Transfert terminé AjouteUnMessage("\n" + Messages.Message((int)Messages.TYPE.COMPILATION_ET_TRANSFERT_TERMINÉ)); if (Compilateur.fermetureDeLaFenêtreALaFin) { #if (DEBUG) Application.Exit(); #else FermeLaFenêtreAprès2Secondes(); #endif } } }
// 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); }
/* * 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); }
/* * 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 // - 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"); }
// 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"); }
/* * Constructeur */ public Variable_IncrémenterUneVariable(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs) { // Déclarations // ------------ String nomDeLAttribut; // Traitements // ----------- // Analyse du Bloc d'instruction foreach (XmlNode XMLDUnNoeudFils in _XMLDuBloc) { nomDeLAttribut = ""; if (XMLDUnNoeudFils.Attributes["name"] != null) { nomDeLAttribut = XMLDUnNoeudFils.Attributes["name"].Value; } switch (nomDeLAttribut) { case "VAR": __nom = XMLDUnNoeudFils.FirstChild.InnerText; break; case "DELTA": switch (XMLDUnNoeudFils.ChildNodes.Count) { case 1: // Le Noeud fils contient seulement une balise <shadow> // C'est la balise <shadow> qui est sélectionnée avec XMLDUnNoeudFils.FirstChild __expression = Compilateur.AnalyseUnNoeudDExpression(_UID, XMLDUnNoeudFils.FirstChild, _blocPrécédent, _groupeDeBlocs); break; case 2: // Le Noeud fils contient une balise <shadow> et une balise <block> // C'est la balise <block> qui est sélectionnée avec XMLDUnNoeudFils.LastChild __expression = Compilateur.AnalyseUnNoeudDExpression(_UID, XMLDUnNoeudFils.LastChild, _blocPrécédent, _groupeDeBlocs); break; } break; } } __Variable.AjouteUneVariable(__nom); // Liste les séquences du bloc // --------------------------- __séquences.Add((Séquence)Séquence_1); }
/* * Constructeur */ public GroupeDInstructions_Si_ENTCondition_Alors_Sinon(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs, null, null, null) { // Déclarations // ------------ String nomDeLAttribut; XmlNode XMLInterne; // Traitements // ----------- // Analyse du Bloc d'instruction foreach (XmlNode XMLDUnNoeudFils in _XMLDuBloc.ChildNodes) { nomDeLAttribut = ""; if (XMLDUnNoeudFils.Attributes["name"] != null) { nomDeLAttribut = XMLDUnNoeudFils.Attributes["name"].Value; } switch (nomDeLAttribut) { case "Condition": __conditionDEntré = Compilateur.AnalyseUnNoeudDExpression(_UID, XMLDUnNoeudFils.FirstChild, _blocPrécédent, _groupeDeBlocs); break; } } // Blocs internes au groupe // ------------------------ XMLInterne = _XMLDuBloc.SelectSingleNode("./statement[@name=\"BlocsInternes\"]"); if (XMLInterne != null) { __blocsInternes = new __BlocsInternes(UID + 1, XMLInterne.FirstChild, null, this); } XMLInterne = _XMLDuBloc.SelectSingleNode("./statement[@name=\"BlocsInternes_Sinon\"]"); if (XMLInterne != null) { if (__blocsInternes != null) { __blocsInternesSupplémentaires = new __BlocsInternes(UID + 1 + __blocsInternes.nombreDeSéquence, XMLInterne.FirstChild, null, this); } else { __blocsInternesSupplémentaires = new __BlocsInternes(UID + 1, XMLInterne.FirstChild, null, this); } } }
/* * Constructeur */ public GroupeDInstructions_Boucle_Faire_TantQue_ENTCondition(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs) { // Déclarations // ------------ String nomDeLAttribut; XmlNode XMLInterne; // Initialisation des membres // -------------------------- // Il est possible de sortir de ce groupe, à l'aide du bloc SortDeLaBoucleFaire __bloc_SortDeLaBoucleFaire_Possible = true; // Traitements // ----------- // Analyse du Bloc d'instruction foreach (XmlNode XMLDUnNoeudFils in _XMLDuBloc.ChildNodes) { nomDeLAttribut = ""; if (XMLDUnNoeudFils.Attributes["name"] != null) { nomDeLAttribut = XMLDUnNoeudFils.Attributes["name"].Value; } switch (nomDeLAttribut) { case "Condition": __conditionDeBoucle = Compilateur.AnalyseUnNoeudDExpression(_UID, XMLDUnNoeudFils.FirstChild, _blocPrécédent, _groupeDeBlocs); break; } } XMLInterne = _XMLDuBloc.SelectSingleNode("./statement"); if (XMLInterne != null) { __blocsInternes = new __BlocsInternes(UID + 1, XMLInterne.FirstChild, null, this); } // Liste les séquences du bloc // --------------------------- __séquences.Add((Séquence)Séquence_1); __séquences.Add((Séquence)Séquence_2); __séquences.Add((Séquence)Séquence_3); __nombreDeBlocsInternes = 1; }
/* * Séquences */ // Séquence 1 : Séquence de DEBUT de Boucle_RépèteToutLeTemps // - Passe au premier bloc interne public String Séquence_1() { if (__blocsInternes != null) { // Passe au premier bloc de la séquence interne return(" " + Compilateur.codeSauteSéquence(UIDDuSéquenceur, UID, __blocsInternes.premierBloc.UID)); } else { // Passe à la séquence FIN de Boucle_RépèteToutLeTemps return(" " + Compilateur.codeSauteSéquence(UIDDuSéquenceur, UID, UID + 2)); } }
/* * Méthode privées */ private int ContrôleLaVitesse(int _vitesse) { if (_vitesse < -100) { _vitesse = -100; Compilateur.AfficheUnMessageDInformation(Messages.Message((int)Messages.TYPE.VITESSE_INFÉRIEURE_A_MOINS_100_POURCENT)); } if (_vitesse > 100) { _vitesse = 100; Compilateur.AfficheUnMessageDInformation(Messages.Message((int)Messages.TYPE.VITESSE_SUPÉRIEURE_A_100_POURCENT)); } return(_vitesse); }
// Séquence 5 // - Passe au bloc suivant public String Séquence_4() { String code = ""; if (Compilateur.afficherLesCommentaires) { code += " # (UID " + __UID + " FIN) Instruction Blockly : " + __nomDansBlockly + "\n"; } code += " " + Compilateur.codeSauteSéquence(UIDDuSéquenceur, UIDDeLaDernièreSéquence, UIDDuBlocSuivant); return(code); }
/* * Constructeur */ public Valeur_OpérateurLogique(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs, int _opérationLogique) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs) { // Déclarations // ------------ String nomDeLAttribut; // Traitements // ----------- // Analyse du Bloc d'instruction foreach (XmlNode XMLDUnNoeudFils in _XMLDuBloc) { nomDeLAttribut = ""; if (XMLDUnNoeudFils.Attributes["name"] != null) { nomDeLAttribut = XMLDUnNoeudFils.Attributes["name"].Value; } switch (nomDeLAttribut) { case "Valeur1": __valeur1 = Compilateur.AnalyseUnNoeudDExpression(_UID, XMLDUnNoeudFils.FirstChild, _blocPrécédent, _groupeDeBlocs); break; case "Valeur2": __valeur2 = Compilateur.AnalyseUnNoeudDExpression(_UID, XMLDUnNoeudFils.FirstChild, _blocPrécédent, _groupeDeBlocs); break; } } switch (_opérationLogique) { case (int)__OPÉRATIONS_LOGIQUES.NOM.OU: __code = "(" + __valeur1.codePourLeSéquenceur + " or " + __valeur2.codePourLeSéquenceur + ")"; break; case (int)__OPÉRATIONS_LOGIQUES.NOM.ET: __code = "(" + __valeur1.codePourLeSéquenceur + " and " + __valeur2.codePourLeSéquenceur + ")"; break; case (int)__OPÉRATIONS_LOGIQUES.NOM.NON: __code = "not (" + __valeur1.codePourLeSéquenceur + ")"; break; } }
/* * Constructeur */ public Variable_DéfinirUneVariable(int _UID, XmlNode _XMLDuBloc, __Bloc _blocPrécédent, __GroupeDeBlocs _groupeDeBlocs) : base(_UID, _XMLDuBloc, _blocPrécédent, _groupeDeBlocs) { // Déclarations // ------------ String erreur; String nomDeLAttribut; // Traitements // ----------- // Analyse du Bloc d'instruction foreach (XmlNode XMLDUnNoeudFils in _XMLDuBloc) { nomDeLAttribut = ""; if (XMLDUnNoeudFils.Attributes["name"] != null) { nomDeLAttribut = XMLDUnNoeudFils.Attributes["name"].Value; } switch (nomDeLAttribut) { case "VAR": __nom = XMLDUnNoeudFils.FirstChild.InnerText; break; case "VALUE": __expression = Compilateur.AnalyseUnNoeudDExpression(_UID, XMLDUnNoeudFils.FirstChild, _blocPrécédent, _groupeDeBlocs); break; } } if (__expression == null) { erreur = String.Format(Messages.Message((int)Messages.TYPE.VARIABLE_NON_INITIALISÉE), __nom); throw new Exception(erreur); } __Variable.AjouteUneVariable(__nom); // Liste les séquences du bloc // --------------------------- __séquences.Add((Séquence)Séquence_1); }
/* * Séquences */ // Séquence 1 public String Séquence_1() { __GroupeDeBlocs groupeDeBlocs; if (__groupeDeBlocs == null) { // Le bloc n'est pas dans un groupe, on passe au bloc suivant return(" " + Compilateur.codeSauteSéquence(UIDDuSéquenceur, UID, UIDDuBlocSuivant)); } else { // Le bloc est dans un groupe FAIRE, on sort de ce groupe groupeDeBlocs = __GroupeDeBlocs.groupeDInstructions_Faire_AuDessus(__groupeDeBlocs); return(" " + Compilateur.codeSauteSéquence(UIDDuSéquenceur, UID, groupeDeBlocs.UIDDuBlocSuivant)); } }
/* * 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équence 4 // - Passe au second bloc du groupe public String Séquence_4() { String code = ""; if (Compilateur.afficherLesCommentaires) { code += " # (UID " + __UID + " FIN) Instruction Blockly : " + __nomDansBlockly + "\n"; } if (__blocsInternes != null) { code += " " + Compilateur.codeSauteSéquence(UIDDuSéquenceur, __blocsInternes.premierBloc.UID + __blocsInternes.nombreDeSéquence, UID + 1); } else { code += " " + Compilateur.codeSauteSéquence(UIDDuSéquenceur, UID + 2, UID + 1); } return(code); }
/* * 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); }
// Séquence 3 : Séquence de FIN de Boucle_RépèteToutLeTemps // - Passe au premier bloc du groupe public String Séquence_3() { String code = ""; if (Compilateur.afficherLesCommentaires) { code += " # (UID " + __UID + " FIN) Instruction Blockly : " + __nomDansBlockly + "\n"; } // Boucle sur l'instruction de DEBUT de Boucle_RépèteToutLeTemps if (__blocsInternes != null) { code += " " + Compilateur.codeSauteSéquence(UIDDuSéquenceur, __blocsInternes.premierBloc.UID + __blocsInternes.nombreDeSéquence, UID); } else { code += " " + Compilateur.codeSauteSéquence(UIDDuSéquenceur, UID + 2, UID); } return(code); }