Voila un petit script pour s'amuser, donne un score sur 50 et la difficulté est accrue au fur et au mesure de l'avancement du score.
J'ai essayé d'equilibrer au maximum, y'aura peut etre des changements à faire de nouveau:
Voici donc ma version de conception un peu différente de celle proposée ci-dessus, mais ca ne veut pas dire que c'est mieux.
Code : Tout sélectionner
HotKeySet("{ESC}", "Terminate")
Func Terminate()
Exit 0
EndFunc ;==>Terminate
MsgBox(4096, "Test de calcul", "Testez vos connaissances en calcul mental. Ce test va devenir de plus en plus dur, vous obtiendrez un score sur 50. Bonne chance ! ECHAP pour quitter.", 0)
$operateur = ""
$score = 0
While $score <50
;Debut des calculs d'operateurs
$op = Random(1, 100, 1)
$1_min = 1
$1_max =(100-2*$score)
$2_min = (100-2*$score)+1
$2_max = (100-2*$score)+2*$score
Switch $op
Case $1_min To $1_max ;Au debut, que des additions, et on en met de moins en moins
If Random(1, 100, 1) >= $score*2.5 Then
$operateur = " + "
$nombre1 = Random(1, 9+4*$score, 1)
$nombre2 = Random(1, 9+abs(4*$score-$nombre1), 1)
Else
$operateur = " - "
$nombre1 = Random(1, 9+4*$score, 1)
$nombre2 = Random(1, 9+4*$score, 1)
EndIf
Case $2_min To $2_max
$operateur = " * "
$nombre1 = Random(1, 2*$score, 1)
$nombre2 = Random(1, Int(abs(2*$nombre1-$score)), 1)
EndSwitch
;Calcul du resultat, et affichage de l'Input
$resultat = Execute($nombre1 & $operateur & $nombre2)
$value = InputBox("Test de calcul", $nombre1 & $operateur& $nombre2 & " = . . . ", "", " M5")
If $value = $resultat Then
$score = $score + 1
TrayTip("Notification", " CORRECT : Score=" & $score, 5000, 1)
Sleep(500)
ElseIf $value <> int($value) Then
Exit
Else
MsgBox(0,"Test de calcul"," FAUX ! La réponse etait : " & $resultat & "Votre score est:"&$score)
Exit
EndIf
WEnd
MsgBox(0,"Test de calcul"," FELICITATIONS ! Votre score est MAXIMAL. Ne tardez plus à tenter votre chance au 'Compte est Bon'."&$score)
Exit