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é

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

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