version 6.01 1 FOptions FMenu 2 10 7 1 0 15 1 1 4 2 0 1 12 6 0 0 0 0 0 0 398 348 0 0 0 Sub designer addform(FOptions,"Options","",220,220,220)@ addbutton(foptions,BOptionsAide,210,310,75,23,"Aide",212,208,200,0,0,0,True,True,9)@ addcheckbox(foptions,CBOptionsDouble,75,190,115,25,"Identique au 2è",220,220,220,0,0,0,True,True,False,9)@ addcheckbox(foptions,CBOptionsVocal,215,135,85,25,"Vocal",220,220,220,0,0,0,True,True,False,9)@ addcheckbox(foptions,CBOptionsTables,60,155,110,25,"Dans les tables",220,220,220,0,0,0,False,True,True,9)@ addlabel(foptions,Label10,280,260,100,25,"Valeur maximum",220,220,220,0,0,0,True,True,9)@ addlabel(foptions,Label9,280,220,100,25,"Valeur minimum",220,220,220,0,0,0,True,True,9)@ addnum(foptions,NOptionsMax2,210,260,60,9,99,255,255,255,True,True)@ addnum(foptions,NOptionsMin2,210,220,60,1,99,255,255,255,True,True)@ addlabel(foptions,Label8,205,195,140,20,"2è nombre",220,220,220,0,0,0,True,True,9)@ addlabel(foptions,Label7,80,260,120,25,"Valeur maximum",220,220,220,0,0,0,True,True,9)@ addnum(foptions,NOptionsMax1,10,260,60,9,99,255,255,255,True,True)@ addlabel(foptions,Label6,80,220,120,25,"Valeur minimum",220,220,220,0,0,0,True,True,9)@ addnum(foptions,NOptionsMin1,10,220,60,1,99,255,255,255,True,True)@ addlabel(foptions,Label5,5,195,140,20,"1er nombre",220,220,220,0,0,0,True,True,9)@ addlabel(foptions,Label4,270,95,120,25,"Sec pour répondre",220,220,220,0,0,0,True,True,9)@ addnum(foptions,NOptionsTemps,215,95,50,10,100,255,255,255,True,True)@ addlabel(foptions,Label3,270,55,110,25,"Questions posées",220,220,220,0,0,0,True,True,9)@ addcheckbox(foptions,CBOptionsDivisions,30,130,105,25,"Divisions",220,220,220,0,0,0,True,True,False,9)@ addcheckbox(foptions,CBOptionsMultiplications,30,100,105,25,"Multiplications",220,220,220,0,0,0,True,True,False,9)@ addcheckbox(foptions,CBOptionsSoustractions,30,70,105,25,"Soustractions",220,220,220,0,0,0,True,True,False,9)@ addlabel(foptions,Label2,10,15,170,25,"Types d'opérations posées",220,220,220,0,0,0,True,True,9)@ addnum(foptions,NOptionsNBQuestions,215,55,50,20,100,255,255,255,True,True)@ addcheckbox(foptions,CBOptionsAdditions,30,40,105,25,"Additions",220,220,220,0,0,0,True,True,True,9)@ addbutton(foptions,BOptionsOK,100,310,75,23,"OK",212,208,200,0,0,0,True,True,9)@ addform(FMenu,"Operations","",220,220,220)@ addbutton(fmenu,BMenuApropos,50,75,90,30,"A Propos",212,208,200,0,0,0,True,True,12)@ addtextbox(fmenu,TBMenuQuestionsRestantes,255,275,30,30,"",255,255,255,0,0,0,True,False,False,12)@ addlabel(fmenu,Label15,90,280,165,25,"Questions restantes :",220,220,220,0,0,0,True,False,12)@ addbutton(fmenu,BMenuAide,260,20,90,30,"Aide",212,208,200,0,0,0,True,True,12)@ addtextbox(fmenu,TBMenuRestant,360,190,30,30,"",255,255,255,0,0,0,True,False,False,12)@ addlabel(fmenu,LMenuRestant,235,190,125,25,"Temps restant :",220,220,220,0,0,0,True,False,12)@ addtimer(fmenu,TMenuTemps,165,305,1000)@ addbutton(fmenu,BMenuOk,245,235,75,23,"Ok",212,208,200,0,0,0,True,True,12)@ addbutton(fmenu,BMenuArreterQuestions,210,130,180,30,"Arrêter les questions",212,208,200,0,0,0,True,True,12)@ addtextbox(fmenu,TBMenuReponse,115,235,75,30,"",255,255,255,0,0,0,True,False,False,12)@ addtextbox(fmenu,TBMenuQuestion,115,185,75,30,"",255,255,255,0,0,0,True,False,False,12)@ addlabel(fmenu,Label12,20,235,90,25,"Réponse :",220,220,220,0,0,0,True,False,12)@ addlabel(fmenu,Label11,20,190,90,25,"Question :",220,220,220,0,0,0,True,False,12)@ addbutton(fmenu,BMenuQuestions,5,130,180,30,"Lancer les questions",212,208,200,0,0,0,True,True,12)@ addbutton(fmenu,BMenuOptions,50,20,90,30,"Options",212,208,200,0,0,0,True,True,12)@ addbutton(fmenu,BMenuQuitter,260,75,90,30,"Quitter",212,208,200,0,0,0,True,True,12)@ addmenuitem(fmenu,MMemuFichier,"Fichier",True,False)@r addmenuitem(mmemufichier,MMenuFichierLancer,"Lancer les questions",True,False)@r addmenuitem(mmemufichier,MMenuFichierArreter,"Arrêter les questions",False,False)@r addmenuitem(mmemufichier,MMenuFichierQuitter,"Quitter",True,False)@r addmenuitem(fmenu,MMenuOutils,"Outils",True,False)@r addmenuitem(mmenuoutils,MMenuOutilsOptions,"Options",True,False)@r addmenuitem(fmenu,MMenuAide,"?",True,False)@r addmenuitem(mmenuaide,MMenuAideAide,"Aide",True,False)@r addmenuitem(mmenuaide,MMenuAideApropos,"A propos",True,False)@ End Sub End Sub End Sub End Sub @EndOfDesignText@Sub Globals 'Declare the global variables here. restant = 0 Nb1 =0 Nb2 = 0 Operation = "+" QuestionsRestantes = 0 Resultat = 0 Points = 0 EnCours = 0 End Sub Sub App_Start TMenuTemps.Interval = 1000 LMenuRestant.Visible = False TBMenuRestant.Visible = False BMenuOk.Visible = false BMenuArreterQuestions.Visible = false FMenu.Show End Sub Sub BMenuApropos_Click Shell ("versions.txt", "") End Sub Sub BMenuOptions_Click FOptions.Show End Sub Sub MMenuOutilsOptions_Click FOptions.Show End Sub Sub BOptionsAide_Click Shell ("hh.exe", "-mapid 2 Operations.chm") End Sub Sub BOptionsOK_Click If CBOptionsAdditions.Checked = false AND CBOptionsDivisions.Checked = false AND CBOptionsMultiplications.Checked = false AND CBOptionsSoustractions.Checked = false Then CBOptionsAdditions.Checked = true End If FOptions.Close End Sub Sub BMenuQuestions_Click EnCours = 1 BMenuOk.Visible = true TBMenuQuestionsRestantes.Visible = true Label15.Visible = true Label11.Visible = true Label12.Visible = true TBMenuQuestion.Visible=true TBMenuReponse.Visible=true BMenuOptions.Visible = false MMenuOutilsOptions.Enabled = false BMenuArreterQuestions.Visible = true MMenuFichierArreter.Enabled = true BMenuQuestions.Visible = false MMenuFichierLancer.Enabled = false QuestionsRestantes = NOptionsNBQuestions.Value Points = 0 UneQuestion End Sub Sub MMenuFichierLancer_Click BMenuQuestions_Click End Sub Sub UneQuestion TBMenuReponse.Focus TBMenuReponse.Text = "" restant = NOptionsTemps.Value TBMenuQuestionsRestantes.Text = QuestionsRestantes TBMenurestant.Text = " " & restant LMenuRestant.Visible = True TBMenuRestant.Visible = True TMenuTemps.Enabled = True Nb1 = Rnd(NOptionsMin1.Value, NOptionsMax1.Value + 1) Nb2 = Rnd(NOptionsMin2.Value, NOptionsMax2.Value + 1) Operation="" If CBOptionsAdditions.Checked = true Then Operation = Operation & "+" End If If CBOptionsDivisions.Checked = true Then Operation = Operation & "/" End If If CBOptionsMultiplications.Checked = true Then Operation = Operation & "x" End If If CBOptionsSoustractions.Checked = true Then Operation = Operation & "-" End If Operation = SubString (Operation, Rnd(1,StrLength (Operation)+ 1) - 1,1) If Operation = "-" Then If Nb2>Nb1 Then temp=Nb2 Nb2=Nb1 Nb1=temp End If End If If Operation = "/" Then If Nb2 = 0 Then Nb2 = 1 End If If CBOptionsTables.Checked = true Then Nb1= Nb2 * Rnd (1,10) End If Nb1=Int(Nb1/Nb2)*Nb2 End If If CBOptionsDouble.Checked Then Nb1 = Nb2 End If TBMenuQuestion.Text = Nb1 & Operation & Nb2 If CBOptionsVocal.Checked Then DoEvents 'Do Eventes BEFORE Speaking Sleep (600) Dire (Nb1) Select Operation Case "+" Sound (".\sons\plus.wav") Case "-" Sound (".\sons\moins.wav") Case "x" Sound (".\sons\fois.wav") Case "/" Sound (".\sons\divise.wav") End Select Sleep (400) Dire (Nb2) End If End Sub Sub Dire (temp) 'Sleep (300) Sound (".\sons\" & temp & ".wav") Sleep (500) End Sub Sub Reponse LMenuRestant.Visible = False TBMenuRestant.Visible = False TMenuTemps.Enabled = False Select Operation Case "+" OperationTexte="Plus" Case "-" OperationTexte="Moins" Case "x" OperationTexte="Fois" Case "/" OperationTexte="Divise" End Select Resultat = CallSub("Calcule" & OperationTexte, Nb1, Nb2) If Resultat = TBMenuReponse.Text Then Sound (".\sons\ding.wav") Msgbox ("Bonne Réponse") Points = Points + 1 Else Sound (".\sons\crash1.wav") Msgbox ("Mauvaise réponse, c'était " & resultat) End If QuestionsRestantes = QuestionsRestantes -1 If QuestionsRestantes = 0 Then Score Else UneQuestion End If End Sub Sub CalculePlus (a,b) Return a+b End Sub Sub CalculeMoins (a,b) Return a-b End Sub Sub CalculeFois (a,b) Return a*b End Sub Sub CalculeDivise (a,b) Return a/b End Sub Sub BMenuArreterQuestions_Click Score End Sub Sub MMenuFichierArreter_Click BMenuArreterQuestions_Click End Sub Sub Score EnCours = 0 TBMenuQuestionsRestantes.Visible = false Label15.Visible = false Label11.Visible = false Label12.Visible = false TBMenuQuestion.Visible=false TBMenuReponse.Visible=false BMenuQuestions.Visible = true MMenuFichierLancer.Enabled = true BMenuArreterQuestions.Visible = false MMenuFichierArreter.Enabled = false BMenuOptions.Visible = true MMenuOutilsOptions.Enabled = true LMenuRestant.Visible = False TBMenuRestant.Visible = False TMenuTemps.Enabled = False BMenuOk.Visible = false Msgbox ("C'est fini, votre score est de " & Points & "/" & NOptionsNBQuestions.Value) End Sub Sub BMenuOk_Click restant = -1 Reponse End Sub Sub TBMenuReponse_KeyPress (key) If Asc(key) = 13 AND EnCours = 1 Then TBMenuReponse.IgnoreKey BMenuOk_Click End If End Sub Sub TMenuTemps_Tick restant = restant - 1 TBMenurestant.Text = " " & restant If restant = -1 Then Reponse End If End Sub Sub CBOptionsDivisions_Click If CBOptionsDivisions.Checked = true Then CBOptionsTables.Enabled = true Else CBOptionsTables.Enabled = false End If End Sub Sub MMenuAideApropos_Click BMenuApropos_Click End Sub Sub BMenuAide_Click MMenuAideAide_Click End Sub Sub MMenuAideAide_Click Shell ("hh.exe", "-mapid 1 Operations.chm") End Sub Sub MMenuFichierQuitter_Click AppClose End Sub Sub BMenuQuitter_Click AppClose End Sub Sub CBOptionsDouble_Click If CBOptionsDouble.Checked = true Then Label6.Visible = false Label7.Visible = false NOptionsMin1.Visible = false NOptionsMax1.Visible = false Else Label6.Visible = true Label7.Visible = true NOptionsMin1.Visible = true NOptionsMax1.Visible = true End If End Sub