Exercices de Frappes des caractères

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Exercices de Frappes des caractères

Message par Ar-S »

Bonjour,

Pour mes petits élèves, j'ai fait un petit "jeu" de tape au clavier. Il est très basique mais a suffit à les faire bien marrer.
Il comprend 7 niveaux (levels),
Si les 5 premiers sont faciles, les 3 derniers sont plus corsés.
Le 5 fera travailler votre patience, le 6 votre concentration, le 7 votre dextérité :mrgreen:


Notes :
- Les retours à la lignes sont automatiques
- Si vous souhaitez commencer à un level > 1 éditez le raccourcis du programme et ajouter le level souhaité (de 1 à 7) aux paramètres. (ex : exofrappe02.exe 3 pour débloquer les trois 1ers levels.
- Épileptiques s'abstenir de faire le niv 6 :idea:

EnJoYeZ

Code : Tout sélectionner

; Exercice de frappe claviers by Ar-S // 09-14 // PB 5.30x86


Declare.s Levelhard(maxcara)
Declare InitButtonLevel()

Enumeration 0
#PRIM
EndEnumeration  

Enumeration 1
  #B1
  #B2
  #B3
  #B4
  #B5
  #B6
  #B7
  
  #Consigne
  #TXT
  #EXO
  #VALIDER
  #T
  #TC
EndEnumeration

Global.b EnCours,nbPTS,GoTimer,rebour,cheat
Global.s L1,L2,L3,L4,L5,L6,L7
Global Pos, NewPos
Global Catchclipb$

rebour = 10
GoTimer=0
nbPTS = 0
FTXT = LoadFont(#PB_Any,"Arial",14,#PB_Font_HighQuality)
L1 = "Allo, Action, Biscotte, Chien, Chine, Découvrir, Efficace, énergie, Fibre, Figue, Grès, grue, Gras, GROS, GRAND, Hôtel, Hibou, ici, idées, iceberg, joyeux, Jacques, Jean, Koala, kamikazes, Kératine, "
L1 + "kilogramme, là-haut, lacets, lagune, là-dessus, Miniature, Militant, Nénuphare, opéra, Obscurité, Pirouette" 
L2 = "é'èà=éç';:,!)çéè"+Chr(34)+"ééèà$*/+-*ç';:,!)çéèè°)36ééèà$*/+-*(àé)/**éepdo_-èàé"
L3 = "*)_.:êç-~é?*ï6Ê2he£@jr,:0à#é°'()ï68zdEZ@jr,:0à#é°Ô"
L4 = "Noël, monemail@nomdomain.com, http://www.ecole-primevere.org/, €uro, Métalique, N°1, "+Chr(34)+"80+16=96, Après la virgule on place un espace mais pas avant. C'est identique avec le point. Ce level est maintenant bientÔt terminé."
L4 + "(Sachez seulement que le é en majuscule s'obtient en combinant ALT+144). Voilà c'est TERMINÉ"
L5 = Levelhard(250)
L6 = Levelhard(80)
L7 = Levelhard(10)

Global m$ = "Recopiez les caractères ci dessus puis validez le pour passer au level suivant !"
Global clp$ = "On ne triche pas avec moi mécréant ! ;)"
clp$+Chr(10)+" Recommence donc ce level ! Mouhahahahaaaa"


Procedure.s Levelhard(maxcara)
Protected GenCode.s
RandomSeed(ElapsedMilliseconds())
For i = 1 To maxcara
	Car.s = Chr(Random (126,48) ) +","
	GenCode.s + Car
Next
ProcedureReturn GenCode
EndProcedure

Procedure.s GetLevelName()
	Level.s = GetGadgetText(GetActiveGadget())
	ProcedureReturn Level
EndProcedure


Procedure StartLevel()
Protected L.s, Consigne.s
Shared EnCours

L.s = GetLevelName()
Choix = MessageRequester("C'est parti !","Commencer ou recommencer le "+L.s+ " ?", 0|#PB_MessageRequester_YesNo|#MB_ICONQUESTION)
Select L.s
	Case "Level 1" : Consigne = L1
	Case "Level 2" : Consigne = L2
	Case "Level 3" : Consigne = L3
	Case "Level 4" : Consigne = L4
	Case "Level 5" : Consigne = L5
	Case "Level 6" : Consigne = L6
	Case "Level 7" : Consigne = L7
EndSelect

Select Choix
	Case 6 ; oui
		EnCours = GetActiveGadget()
		SetGadgetText(#Consigne,Consigne.s)
		SetGadgetText(#Exo,"")
		SetActiveGadget(#Exo)
		
		If Consigne = L6
			GoTimer = 1
		ElseIf Consigne = L7
			GoTimer = 2
		Else
			GoTimer = 0	
		EndIf
		
EndSelect
		
EndProcedure

Procedure InitButtonLevel()
	Protected  gadget
	gadget  = EnCours
	For i = 1 To gadget
	DisableGadget(i,0)
	Next
	
	For i = gadget+1 To 7
		DisableGadget(i,1)
	Next

EndProcedure


Procedure Cheat()
	 If Cheat = 1
		 SetGadgetText(#EXO,clp$)
	  	 SetClipboardText (clp$)
  	 EndIf	
  	 Cheat = 0
EndProcedure



	EnCours = Val(ProgramParameter(0) )
	If EnCours < 2 Or Encours > 7
		EnCours = 1	
	EndIf

  If OpenWindow(#PRIM, 466, 214, 650, 412, "Exercices de frappe de caractères", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
      ButtonGadget(#B1, 1, 1, 90, 25, "Level 1")
      ButtonGadget(#B2, 93, 1, 90, 25, "Level 2")
      ButtonGadget(#B3, 185, 1, 90, 25, "Level 3")
      ButtonGadget(#B4, 277, 1, 90, 25, "Level 4")
      ButtonGadget(#B5, 369, 1, 90, 25, "Level 5")
      ButtonGadget(#B6, 461, 1, 90, 25, "Level 6")
      ButtonGadget(#B7, 553, 1, 90, 25, "Level 7")
      EditorGadget(#Consigne, 2, 29, 640, 155, #PB_Editor_ReadOnly|#PB_Editor_WordWrap)
      TextGadget(#TXT, 2, 190, 644, 25, m$, #PB_Text_Center|#SS_CENTERIMAGE)
      EditorGadget(#EXO, 2, 220, 645, 160,#PB_Editor_WordWrap)
      ButtonGadget(#VALIDER, 2, 385, 645, 25, "Valider")
	
	SetGadgetFont(#EXO, FontID(FTXT))
	SetGadgetFont(#Consigne, FontID(FTXT))
	
	SetClipboardText(clp$)
	Catchclipb$ = GetClipboardText()
	
	InitButtonLevel()
	Pos = WindowX(#PRIM)
	NewPos=Pos
	AddWindowTimer(#PRIM, #T,5000)
	AddWindowTimer(#PRIM, #TC,1000)


Repeat
Catchclipb$ = GetClipboardText()
Debug Catchclipb$
If Catchclipb$ <> clp$
	cheat = 1
	cheat()
EndIf

  Select WaitWindowEvent()
    ; ///////////////////
    Case #PB_Event_Timer
    	Select EventTimer()
    	Case #T
    	If GoTimer = 1
    		RandomSeed(ElapsedMilliseconds())
    		SetWindowColor(#prim,RGB(Random(255),Random(255),Random(255)) )
			Move = Random(100,50)
			If NewPos > Pos
				NewPos	= Pos-Move
			Else 
				NewPos	= Pos+Move
			EndIf
			
			ResizeWindow(#PRIM, NewPos, #PB_Ignore, #PB_Ignore, #PB_Ignore)
    		
    		
    	EndIf
    
	    Case #TC
	    	If GoTimer = 2
	    		SetGadgetText(#TXT, "Recopiez les caractères ci dessus puis validez, il vous reste "+Str(rebour)+" secondes !") 
	    		Rebour -1
	    		If rebour = -1
	    			rebour = 10
	    			SetGadgetText(#Consigne,Levelhard(10) )
					SetGadgetText(#Exo,"")
					SetActiveGadget(#Exo)
	    		EndIf
	    	Else
	    		SetGadgetText(#TXT, m$) 	
	    	EndIf
    
    EndSelect	
    
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #B1
        StartLevel()
        Case #B2
        StartLevel()
        Case #B3
        StartLevel()
        Case #B4
        StartLevel()
        Case #B5
        StartLevel()
        Case #B6
        StartLevel()
        Case #B7
        StartLevel()
        
        Case #Consigne
        Case #TXT
        Case #EXO
        Case #VALIDER
        VerifC.s = GetGadgetText(#Consigne)
        VerifR.s = GetGadgetText(#EXO)
        If VerifC <> VerifR Or VerifR = "" Or VerifC = ""  
        	MessageRequester("Oupsss","Désolé il doit y avoir une erreur !",#PB_MessageRequester_Ok| #MB_ICONERROR)
        Else
        	EnCours+1
        	nbPTS = EnCours*5
        	If encours < 8
        		MessageRequester("Bravo !", "exercice réussi ! Tu as dévérouillé le level suivant !"+Chr(10)+"Tu as "+Str(nbPTS) + " points !",#PB_MessageRequester_Ok| #MB_ICONEXCLAMATION)
        		InitButtonLevel()
        		
        	ElseIf encours > 7
        	MessageRequester("Bravo !", "Tu as gagné tous les levels, tu es un champion !",#PB_MessageRequester_Ok| #MB_ICONEXCLAMATION)
        	Champion = 1 
           	quite = 1
        	EndIf
        	
        EndIf
        
      EndSelect
    ; ////////////////////////
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #PRIM
          CloseWindow(#PRIM)
          quite = 1
          Break
      EndSelect
  EndSelect
Until quite = 1

If Champion = 1
	RunProgram ("http://www.officialpsds.com/images/thumbs/1-Gold-Trophy-psd47711.png","","",0)
EndIf

End
EndIf
Dernière modification par Ar-S le mar. 23/sept./2014 9:12, modifié 4 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
raven
Messages : 222
Inscription : jeu. 06/janv./2005 15:45

Re: Exercices de Frappes des caractères

Message par raven »

Sympa comme petit jeu.
j'avoue j'ai tenté la facilité...
http://www.youtube.com/watch?v=dWbS-UF3ktQ
:)
Pb5.24 Lts/5.31 Windows 7 64 nvidia 560 ti E8500 8g ram
Avatar de l’utilisateur
majikeyric
Messages : 602
Inscription : dim. 08/déc./2013 23:19
Contact :

Re: Exercices de Frappes des caractères

Message par majikeyric »

Sympa!

Micoute va te le piquer :mrgreen:

Mince on ne peut pas faire de copier-coller :lol:
Lemaquis
Messages : 271
Inscription : mer. 25/déc./2013 7:34
Localisation : la corse

Re: Exercices de Frappes des caractères

Message par Lemaquis »

merci Ar-S

tu leur apprend la programmation?
LeMaquis
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Exercices de Frappes des caractères

Message par Ar-S »

Non, je les initierai peut-être cette année avec la demo de PB mais uniquement s'ils ont déjà acquis le reste..
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Exercices de Frappes des caractères

Message par Micoute »

majikeyric a écrit :Sympa!

Micoute va te le piquer :mrgreen:

Mince on ne peut pas faire de copier-coller :lol:
Ce n'est pas du tout exclus !

Un grand merci à Ar-s qui fait des logiciels plus intelligents que les miens !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
majikeyric
Messages : 602
Inscription : dim. 08/déc./2013 23:19
Contact :

Re: Exercices de Frappes des caractères

Message par majikeyric »

Y a une petite erreur je pense dans

Code : Tout sélectionner

LVL = CountProgramParameters()

If LVL > 0 And LVL < 8
      EnCours = Val(ProgramParameter(0) )
Else
      EnCours = 1   
EndIf
CountProgramParameters() renvoie le nombre de paramètres passés, pas la valeur du premier paramètre.
ça marche quand tu passes un numéro de level car LVL est toujours égal à 1.
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Exercices de Frappes des caractères

Message par Ar-S »

Ah je viens de piger... Je m'étais emmêlé les pinceaux effectivement.
Merci.

Voilà la modif.

Code : Tout sélectionner

	EnCours = Val(ProgramParameter(0) )
	If EnCours < 2 Or Encours > 7
		EnCours = 1	
	EndIf
J'ai corrigé le code complet aussi.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: Exercices de Frappes des caractères

Message par PAPIPP »

Bonjour Ar-s
Et merci pour ce petit prg

Je ne sais pas quel âge on les élèves. Mais au mien je désespérais de pouvoir terminer le premier niveau, aucune aide pour savoir si l’erreur provenait d’une ponctuation (exemple 2 blancs au lieu de 1) ou d’un mot mal orthographié minuscule ou majuscule ou d’une fin de ligne en un retour chariot (les retours à la ligne sont automatiques) taper sur retour chariot est pour moi un automatisme et la correction n’était pas évidente car on ne voyait pas l’erreur.

J’ai donc ajouté une aide pour corriger l’orthographe, la ponctuation et le retour chariot.
Voici ma petite participation avec un contrôle pour les niveaux 1 et 4

Code : Tout sélectionner

; Exercice de frappe claviers by Ar-S // 09-14 // PB 5.30x86

; Exercice de frappe claviers


Declare.s Levelhard(maxcara)
Declare InitButtonLevel()

Enumeration 0
#PRIM
EndEnumeration

Enumeration 1
  #B1
  #B2
  #B3
  #B4
  #B5
  #B6
  #B7

  #Consigne
  #TXT
  #EXO
  #VALIDER
  #T
  #TC
  #ex_fr
EndEnumeration


Global.b EnCours,nbPTS,GoTimer,rebour
Global.s L1,L2,L3,L4,L5,L6,L7
Global Pos, NewPos

rebour = 10
GoTimer=0
nbPTS = 0
FTXT = LoadFont(#PB_Any,"Arial",14,#PB_Font_HighQuality)
L1 = "Allo, Action, Biscotte, Chien, Chine, Découvrir, Efficace, énergie, Fibre, Figue, Grès, grue, Gras, GROS, GRAND, Hôtel, Hibou, ici, idées, iceberg, joyeux, Jacques, Jean, Koala, kamikazes, Kératine, "
L1 + "kilogramme, là-haut, lacets, lagune, là-dessus, Miniature, Militant, Nénuphare, opéra, Obscurité, Pirouette"
L2 = "é'èà=éç';:,!)çéè"+Chr(34)+"ééèà$*/+-*ç';:,!)çéèè°)36ééèà$*/+-*(àé)/**éepdo_-èàé"
L3 = "*)_.:êç-~é?*ï6Ê2he£@jr,:0à#é°'()ï68zdEZ@jr,:0à#é°Ô"
L4 = "Noël, monemail@nomdomain.com, http://www.ecole-primevere.org/, €uro, Métalique, N°1, "+Chr(34)+"80+16=96, Après la virgule on place un espace mais pas avant. C'est identique avec le point. Ce level est maintenant bientÔt terminé."
L4 + "(Sachez seulement que le é en majuscule s'obtient en combinant ALT+144). Voilà c'est TERMINÉ"
L5 = Levelhard(250)
L6 = Levelhard(80)
L7 = Levelhard(10)

Global m$ = "Recopiez les caractères ci dessus puis validez le pour passer au level suivant !"
Global clp$ = "On ne triche pas avec moi mécréant ! ;)"
SetClipboardText (clp$)

Procedure.s Levelhard(maxcara)
Protected GenCode.s
RandomSeed(ElapsedMilliseconds())
For i = 1 To maxcara
   Car.s = Chr(Random (126,48) ) +","
   GenCode.s + Car
Next
ProcedureReturn GenCode
EndProcedure

Procedure.s GetLevelName()
   Level.s = GetGadgetText(GetActiveGadget())
   ProcedureReturn Level
EndProcedure


Procedure StartLevel()
  Protected L.s,Consigne.s
  Shared EnCours
 
  L.s=GetLevelName()
  Choix=MessageRequester("C'est parti !","Commencer ou recommencer le "+L.s+" ?",0 | #PB_MessageRequester_YesNo | #MB_ICONQUESTION)
  Select L.s
    Case "Level 1":Consigne=L1
    Case "Level 2":Consigne=L2
    Case "Level 3":Consigne=L3
    Case "Level 4":Consigne=L4
    Case "Level 5":Consigne=L5
    Case "Level 6":Consigne=L6
    Case "Level 7":Consigne=L7
  EndSelect
 
  Select Choix
    Case 6 ; oui
      EnCours=GetActiveGadget()
      SetGadgetText(#Consigne,Consigne.s)
      SetGadgetText(#Exo,"")
      SetActiveGadget(#Exo)
     
      If Consigne=L6
        GoTimer=1
      ElseIf Consigne=L7
        GoTimer=2
      Else
        GoTimer=0
      EndIf
     
  EndSelect
 
EndProcedure

Procedure InitButtonLevel()
  Protected gadget
  gadget=EnCours
  For i=1 To gadget
    DisableGadget(i,0)
  Next
 
  For i=gadget+1 To 7
    DisableGadget(i,1)
  Next
 
EndProcedure
Macro controle(texto,texta)
  Mess$=""
 
  If flag=0
    Dim moto$(0)
    Dim mota$(0)
    ;     Exp_fr.s="[A-Za-zÀàÂâÆæÇçÉéÈèÊêËëÎîÏïÔôÙùÛûÜüÿ]*"
    Exp_Nfr.s="[^,| ]+" ; permet de ne sélectionner que le mot valide sans tenir compte de la ponctuation
    If CreateRegularExpression(#ex_FR,exp_nFR); Selection pour le premier tour
      flag=1
    EndIf
    NbFoundo=ExtractRegularExpression(#ex_FR,texto,moto$())
    nb_vbo=CountString(texto,", ")
  EndIf
  ; ************* Contrôle de la ponctuation  type xxxx,byyyy *************************
  texta=Trim(texta)
  ; Debug mp_h(@texta,320,222)
   texta=ReplaceString(texta,Chr(13),"")
   texta=ReplaceString(texta,Chr(10),"")
;  texta=ReplaceString(texta,#CRLF$,"")
  Textaa$=ReplaceString(texta,",",", ")
  Texta=ReplaceString(textaa$,"  "," ")
  SetGadgetText(#EXO, Texta)
  VerifR.s = GetGadgetText(#EXO)
  nb_vba=CountString(texta,", ")
  If nb_vbo<>nb_vba
    Mess$="Vous avez  au moins "+Str(Abs(nb_vbo-nb_vba))+" erreur(s) de ponctuation"+#LFCR$
  EndIf
  Ltextaa=Len(texta$)
  Ltexta=Len(texta)
  If Ltexta<>Ltextaa
    Mess$+"Vous avez tapé "+Str(Ltexta-Ltextaa)+" blanc(s) de trop entre les mots"+#LFCR$
  EndIf
  ;************ Fin de contrôle de la ponctuation *********************
  NbFounda=ExtractRegularExpression(#ex_FR,texta,mota$())
  If nbfoundo <> nbfounda
    mess$+"Vous n'avez pas le même nombre de mot que l'original"+#LFCR$
  Else
    For k=0 To NbFounda-1
      If moto$(k)<>mota$(k)
        mess$+"Vous avez une erreur dans le "+Str(k+1)+"em mot"+#LFCR$
      EndIf 
    Next
  EndIf
  EndMacro


   EnCours = Val(ProgramParameter(0) )
   If EnCours < 2 Or Encours > 7
      EnCours = 1   
   EndIf

  If OpenWindow(#PRIM, 466, 214, 650, 412, "Exercices de frappe de caractères", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
      ButtonGadget(#B1, 1, 1, 90, 25, "Level 1")
      ButtonGadget(#B2, 93, 1, 90, 25, "Level 2")
      ButtonGadget(#B3, 185, 1, 90, 25, "Level 3")
      ButtonGadget(#B4, 277, 1, 90, 25, "Level 4")
      ButtonGadget(#B5, 369, 1, 90, 25, "Level 5")
      ButtonGadget(#B6, 461, 1, 90, 25, "Level 6")
      ButtonGadget(#B7, 553, 1, 90, 25, "Level 7")
      EditorGadget(#Consigne, 2, 29, 640, 155, #PB_Editor_ReadOnly|#PB_Editor_WordWrap)
      TextGadget(#TXT, 2, 190, 644, 25, m$, #PB_Text_Center|#SS_CENTERIMAGE)
      EditorGadget(#EXO, 2, 220, 645, 160,#PB_Editor_WordWrap)
      ButtonGadget(#VALIDER, 2, 385, 645, 25, "Valider")
   
   SetGadgetFont(#EXO, FontID(FTXT))
   SetGadgetFont(#Consigne, FontID(FTXT))
   

   
   InitButtonLevel()
   Pos = WindowX(#PRIM)
   NewPos=Pos
   AddWindowTimer(#PRIM, #T,5000)
   AddWindowTimer(#PRIM, #TC,1000)


Repeat
Catchclipb$ = GetClipboardText()
If Catchclipb$ <> clp$
   SetGadgetText(#EXO,clp$+Chr(10)+" Recommence donc ce level ! Mouhahahahaaaa")
   SetClipboardText (clp$)
EndIf

  Select WaitWindowEvent()
    ; ///////////////////
    Case #PB_Event_Timer
       Select EventTimer()
       Case #T
       If GoTimer = 1
          RandomSeed(ElapsedMilliseconds())
          SetWindowColor(#prim,RGB(Random(255),Random(255),Random(255)) )
         Move = Random(100,50)
         If NewPos > Pos
            NewPos   = Pos-Move
         Else
            NewPos   = Pos+Move
         EndIf
         
         ResizeWindow(#PRIM, NewPos, #PB_Ignore, #PB_Ignore, #PB_Ignore)
         
         
       EndIf
   
       Case #TC
          If GoTimer = 2
             SetGadgetText(#TXT, "Recopiez les caractères ci dessus puis validez, il vous reste "+Str(rebour)+" secondes !")
             Rebour -1
             If rebour = -1
                rebour = 10
                SetGadgetText(#Consigne,Levelhard(10) )
               SetGadgetText(#Exo,"")
               SetActiveGadget(#Exo)
             EndIf
          Else
             SetGadgetText(#TXT, m$)   
          EndIf
   
    EndSelect   
   
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #B1
        StartLevel()
        Case #B2
        StartLevel()
        Case #B3
        StartLevel()
        Case #B4
        StartLevel()
        Case #B5
        StartLevel()
        Case #B6
        StartLevel()
        Case #B7
        StartLevel()
       
        Case #Consigne
        Case #TXT
        Case #EXO
        Case #VALIDER
        VerifC.s = GetGadgetText(#Consigne)
        VerifR.s = GetGadgetText(#EXO)
        If VerifC=L1 Or VerifC=L4
          mess$=""
          Controle(VerifC,VerifR)
         EndIf
        If VerifC <> VerifR
           MessageRequester("Oupsss",Mess$+"Désolé il doit y avoir au moins une erreur !",#PB_MessageRequester_Ok| #MB_ICONERROR)
        Else
           EnCours+1
           nbPTS = EnCours*5
           If encours < 8
              MessageRequester("Bravo !", "exercice réussi ! Tu as dévérouillé le level suivant !"+Chr(10)+"Tu as "+Str(nbPTS) + " points !",#PB_MessageRequester_Ok| #MB_ICONEXCLAMATION)
              InitButtonLevel()
             
           ElseIf encours > 7
           MessageRequester("Bravo !", "Tu as gagné tous les levels, tu es un champion !",#PB_MessageRequester_Ok| #MB_ICONEXCLAMATION)
           RunProgram ("http://www.officialpsds.com/images/thumbs/1-Gold-Trophy-psd47711.png","","",0)
           quite = 1
           EndIf
           
        EndIf
       
      EndSelect
    ; ////////////////////////
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #PRIM
          CloseWindow(#PRIM)
          quite = 1
          Break
      EndSelect
  EndSelect
Until quite = 1

End

EndIf


A+
Dernière modification par PAPIPP le dim. 21/sept./2014 23:50, modifié 4 fois.
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Exercices de Frappes des caractères

Message par Ar-S »

Ce sont des collégiens, avec pour certains de gros soucis et d'autres assez précoces. Merci pour ta participation, je ne sais pas encore si je l'ajouterai car devoir chercher par eux même, quitte à recommencer, leur fait vraiment faire des efforts qu'ils ne feraient pas avec les indications. J'en ai un qui a bloqué 3/4 d'heures sur l'exo un et quand il a réussi, il était aux ages. :)
En tout cas ta macro est sympa :P
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Huitbit
Messages : 940
Inscription : jeu. 08/déc./2005 5:19
Localisation : Guadeloupe

Re: Exercices de Frappes des caractères

Message par Huitbit »

Hello,

C'est sympa.

Je m'attendais à ce que les mots s'affichent un par un et qu'on ait un temps limité pour les recopier sans erreur.

Parce que, quand j'ai vu la longue liste....j'ai bien sûr tenté le copier-coller :mrgreen:

Par contre, quand on valide à vide, on passe au niveau suivant(c'est peut-être voulu).

Cet exercice développe aussi la concentration (plus de 20 secondes pour certains, c'est un exploit !)


Hasta la vista !
Elevé au MSX !
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: Exercices de Frappes des caractères

Message par PAPIPP »

J'ai modifié le prg ci-dessus pour mieux contrôler le retour chariot

A+
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Exercices de Frappes des caractères

Message par Ar-S »

Merci pour les retours Huitbit, j'ai corrigé la validation a blanc.
@PAPIPP merci pour ton code
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Exercices de Frappes des caractères

Message par Ar-S »

Petite modif du code pour afficher le message antitriche correctement.
Déverrouillage des level de 1 à X plutôt que de ne déverrouiller que le level en cours.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre