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 :

listin1.gif (42586 octets)

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