Affiche une lettre au hasard sur le dessin du clavier. Vous devez taper immédiatement sur cette touche. Chaque bonne réponse donne 1 point.
Algorithme :
Listing :
10 REM APPRENDRE A TAPER AU CLAVIER
20 REM ————————————————— 30 DIM C$(48),X(48),Y(48) 40 MODE 1: INK 0,1: INK 1,24 : PAPER 0: PEN 1: BORDER 1 50 DATA 1,2,3,4,5,6,7,8,9,0,-,^ 60 DATA Q,W,E,R,T,Y,U,I,O,P,@,[ 70 DATA A,S,D,F,G,H,J,K,L,”:”,;,] 80 DATA Z,X,C,V,B,N,M,”,”,.,/, 90 DATA ” “ 100 Y=3:X=2 110 FOR I=1 TO 48 120 READ C$(I) 130 X(I)=X:Y(I)=Y 140 X=X 3 150 IF X>37 THEN Y=Y 3:X=INT(Y/3) 1 160 NEXT I 170 RANDOMIZE TIME 280 REM ——————————————- 290 REM DESSIN DU CLAVIER 300 CLS 310 FOR I=1 TO 47 320 MOVE X(I)*16-26,425-Y(I)*16:DRAWR 35,0:DRAWR 0,-35:DRAWR -35,0:DRAWR 0,35 330 NEXT I 340 MOVER -13,-48:DRAWR -419,0:DRAWR 0,-35:DRAWR 419,0:DRAWR 0,35 350 X(48)=20:Y(48)=15 380 REM —————————————- 390 REM APPRENTISSAGE 400 N=0 410 P=0 420 LOCATE 1,20:PRINT “NIVEAU : “;N; ” MOYENNE : “ 430 FOR K=1 TO 20 440 C=INT(RND(1)*48) 1 450 IF C=48 THEN LOCATE X(C),Y(C):PRINT CHR$(231): GOTO 470 460 LOCATE X(C),Y(C):PRINT C$(C) 470 FOR I=1 TO 380-N*20 480 A$=INKEY$:IF A$<>”” THEN 500 490 NEXT I 500 IF A$=C$(C) THEN P=P 1 510 LOCATE 30,20:PRINT P;”/20 “ 520 FOR I=1 TO 380-N*20:Z$=INKEY$:NEXT I 530 LOCATE X(C),Y(C):PRINT” “ 540 NEXT K 550 IF P>17 THEN N=N 1:FOR I=500 TO 50 STEP -5: SOUND 1,I,2:NEXT ELSE FOR I=50 TO 500 STEP 5: SOUND 1,I,2:NEXT 560 IF N>9 THEN N=9 570 GOTO 410 |
Le Programme :
Ligne 30 à 170 : lecture des DATA
On place dans le tableau C$() les lettres qui composent le clavier et dans les tableaux X() et Y() leurs coordonnées sur l’écran.
La ligne 170 initialise les nombres aléatoires.
Ligne 300 à 350 : dessin du clavier
Chaque touche du clavier est représentée par un carré sur l’écran. La touche d’espace étant de forme différente, c’est la ligne 340 qui l’affiche.
Ligne 400 à 570 : apprentissage
On affiche vingt fois de suite une lettre au hasard aux coordonnées pointées par les tableaux X et Y.
Pour la barre d’espacement, on affiche le point contenu dans le caractère graphique 231. La ligne 480 saisit la réponse du joueur pendant un temps précis défini par le niveau N. Si on a plus de 17 réponses exactes, on augmente automatiquement le niveau (ligne 550)
Liste des variables :
A$ réponse tapée au clavier
C numéro de la lettre choisie au hasard
C$() tableau des lettres du clavier
I indice de boucle FOR/NEXT
K indice de boucle FOR/NEXT
N niveau de rapidité
P nombre de points
X Y coordonnées temporaires
X() Y() coordonnées des lettres sur l’écran