numeric NumTout; string StrTout,Poubelle,PoubelleA,PoubelleB; picture PictureTout,PicturePoubA,PicturePoubB; boolean IsNumeric,IsPictureA,IsPictureB; IsNumeric=false; IsPictureA=false; IsPictureB=false; vardef ModifierString(expr nbstring)= string ARetenir; ARetenir:=""; for p=0 upto length nbstring-1: if substring(p,p+1) of nbstring=".": ARetenir:=ARetenir&" "; elseif substring(p,p+1) of nbstring="|||": ARetenir:=ARetenir&"."; else: ARetenir:=ARetenir&substring(p,p+1) of nbstring; fi; endfor; ARetenir enddef; % sucre prof def lignevide=Placer LigneVide enddef; def commandevide(expr nbpas)=Placer CommandeVidemini(nbpas) enddef; def deplacerscriptde(expr xxa,yya)=Deplacerde(xxa,yya) enddef; def deplacerscripta(expr xxa,yya)=Deplacera(xxa,yya) enddef; def num(expr nbpas)=if string nbpas:OvalNb(nbpas) else: OvalNb("\num{"&decimal(nbpas)&"}") fi enddef; def commentaires(text nbpascom)=Placer Commentaires(nbpascom) enddef; def commentairesligne(text nbpascom)=Placer CommentairesLigne(nbpascom) enddef; %%% section Mouvement %%%%%%%%%% def avancer(text nbpas)= Placer Avancer(nbpas) enddef; def tournerg(text nbpas)= Placer Tournerg(nbpas) enddef; def tournerd(text nbpas)= Placer Tournerd(nbpas) enddef; def aller(text nbpas)= Placer Aller(nbpas) enddef; def allera(text nbpas)= Placer Allera(nbpas) enddef; def glisser(text nbpas)= Placer Glisser(nbpas) enddef; def glissera(text nbpas)= Placer Glissera(nbpas) enddef; def orienter(text nbpas)= Placer Orienter(nbpas) enddef; def sorienter(text nbpas)= Placer Orienterdirection(nbpas); enddef; def ajouter(text nbpas)= Placer Ajouter(nbpas) enddef; def mettre(text nbpas)= Placer Mettre(nbpas) enddef; def rebondir=Placer Rebondir enddef; def fixersensrotation(text nbpas)= Placer FixerSensRotation(nbpas) enddef; %% Apparence def dirependant(text nbpas)= Placer DireT(nbpas) enddef; def dire(text nbpas)= Placer Dire(nbpas) enddef; def penserpendant(text nbpas)= Placer PenserT(nbpas) enddef; def penser(text nbpas)= Placer Penser(nbpas) enddef; def montrer=Placer Montrer enddef; def cacher=Placer Cacher enddef; %% évènement def drapeau=Placer Drapeau enddef; def touche(text nbpas)= Placer QPresse(nbpas) enddef; %%% contrôle def attendre(expr nbpas)= Placer Attendre(nbpas) enddef; def attendrejusque(expr nbpas)= Placer AttendreJ(nbpas) enddef; def repeter(expr nbpas)= Placer Repeter(nbpas) enddef; def repeterjusque(expr nbpas)=Placer RepeterJ(nbpas) enddef; def repeterindefiniment=Placer RepeterI enddef; def finrepeter=Placer FinBlocRepeter enddef; def si(expr nbpas)=Placer Si(nbpas) enddef; def finsi=Placer FinBlocSi enddef; def sinon=Placer Sinon enddef; primarydef u sup p = TestOpSup(u,p) enddef; primarydef u inf p = TestOpInf(u,p) enddef; primarydef u egal p = TestOpEgal(u,p) enddef; primarydef u et v = TestOpEt(u,v) enddef; primarydef u ou v = TestOpOu(u,v) enddef; def non(text nbpas)=TestOpNon(nbpas) enddef; % capteurs def demander(text nbpas)= Placer Demander(nbpas) enddef; def réponse=OvalCap("réponse") enddef; % variable vardef variable(text nomvar)= StrTout:=str nomvar; Poubelle:=ModifierString(StrTout); OvalVar(Poubelle) enddef; vardef variablebloc(text nomvar)= StrTout:=str nomvar; Poubelle:=ModifierString(StrTout); OvalBloc(Poubelle) enddef; vardef parametre(text nomvar)= StrTout:=str nomvar; Poubelle:=ModifierString(StrTout); OvalBloc(Poubelle) enddef; %% opérateurs vardef add(expr termea,termeb)= if numeric termea : if numeric termeb: OpAdd(decimal(termea),decimal(termeb)) else: OpAdd(decimal(termea),termeb) fi else: if numeric termeb: OpAdd(termea,decimal(termeb)) else: OpAdd(termea,termeb) fi fi enddef; vardef sous(expr termea,termeb)= if numeric termea : if numeric termeb: OpSous(decimal(termea),decimal(termeb)) else: OpSous(decimal(termea),termeb) fi else: if numeric termeb: OpSous(termea,decimal(termeb)) else: OpSous(termea,termeb) fi fi enddef; vardef mul(expr termea,termeb)= if numeric termea : if numeric termeb: OpMulS(decimal(termea),decimal(termeb)) else: OpMulS(decimal(termea),termeb) fi else: if numeric termeb: OpMulS(termea,decimal(termeb)) else: OpMulS(termea,termeb) fi fi enddef; vardef divi(expr termea,termeb)= if numeric termea : if numeric termeb: OpDivS(decimal(termea),decimal(termeb)) else: OpDivS(decimal(termea),termeb) fi else: if numeric termeb: OpDivS(termea,decimal(termeb)) else: OpDivS(termea,termeb) fi fi enddef; def nombrealeatoire(text nbpas)=OpAlea(nbpas) enddef; def regrouper(text nbpas)=OpRegrouper(nbpas) enddef; % Variable def mettrevariable(text nba)= Placer MettreVar(nba) enddef; def ajoutervariable(text nbpas)=% Placer AjouterVar(nbpas) enddef; def montrervariable(text nbpas)= Placer MontrerVar(nbpas); enddef; def cachervariable(text nbpas)= Placer CacherVar(nbpas); enddef; %Bloc def definir(text nbpas)=Placer NouveauBloc(nbpas) enddef; def bloc(text nbpas)=Placer Bloc(nbpas) enddef; %%%%%%%%%% Stylo def effacer=Placer Effacer enddef; def poserstylo=Placer PoserStylo enddef; def releverstylo=Placer ReleverStylo enddef; primarydef nba mettrevariablenew nbb= Placer MettreVariable(nba,nbb) enddef;