10 ' -------------------
20 ' ATTENTIF
30 ' C - LAVERGNE et CPC
40 ' -------------------
50 MODE 0
60 DIM x(20),mot$(22):INK 0,0:INK 1,26:INK 2,24:INK 3,6
70 '************************* générique
80 FOR w=1 TO 300:PLOT 250,380-w,1:DRAW 270,380-w,1:NEXT:FOR w=1 TO 165:PLOT 270+w,80,1:DRAW 270+w,100,1:NEXT
90 FOR w=1 TO 140:PLOT 345-w/2,380-w,2:DRAW 365-w/2,380-w,2:NEXT:FOR w=1 TO 140:PLOT 345+w/2,380-w,2:DRAW 365+w/2,380-w,2:NEXT:FOR w=1 TO 80:PLOT 320+w,300,2:DRAW 320+w,280,2:NEXT
100 FOR w=1 TO 140:PLOT 275+w/2,243-w,3:DRAW 295+w/2,243-w,3:NEXT:FOR w=1 TO 140:PLOT 415-w/2,243-w,3:DRAW 435-w/2,243-w,3:NEXT 
110 PAPER 0:PEN 2:LOCATE 8,24:PRINT "PRESENTE":FOR T=1 TO 5000:NEXT:MODE 1
120 '            accents
130 SYMBOL AFTER 64
140 SYMBOL 125,&60,&10,&3C,&66,&7E,&60,&3C
150 KEY 135,CHR$(123)
160 SYMBOL 123,&6,&8,&3C,&66,&7E,&60,&3C
170 KEY 128,CHR$(125)
180 SYMBOL 64,&60,&10,&78,&3C,&7C,&CC,&76
190 KEY 129,CHR$(64)
200 SYMBOL 92,&0,&0,&3C,&66,&60,&3E,&8,&18
210 KEY 132,CHR$(92)
220 SYMBOL 124,&30,&8,&66,&66,&66,&66,&3E
230 KEY 137,CHR$(124)
240 SYMBOL 94,&18,&24
250 KEY 134,CHR$(94)
260 SYMBOL 93,&1C,&32,&38,&6C,&38,&10,&90,&60
270 KEY 131,CHR$(93)
280 MODE 0:LOCATE 6,12:PRINT "ATTENTIF":FOR A=1 TO 2000:NEXT:MODE 1     
290 CLS:PAPER 3:PEN 1:LOCATE 15,1:PRINT "BUT DU JEU":PAPER 1:PEN 3:LOCATE 1,3:PRINT " Se souvenir et écrire correctement les mots d'une phrase que tu verras un court               instant.                 ":FOR a=1 TO 5000:NEXT
300 PAPER 2:PEN 0:LOCATE 1,10:PRINT "Un mot bien écrit te rapportera 4 points  une faute ou une aide te pénalisera                  d'un point.              ":FOR a=1 TO 5000:NEXT
310 PAPER 2:PEN 3:LOCATE 1,17:PRINT " Tu as la possibilité de sortir du jeu    avec la touche CLR. Un bilan te sera             alors proposé.               ":FOR a=1 TO 5000:NEXT
320 FOR a=1 TO 9999
330 PAPER 3:PEN 1:LOCATE 18,22:PRINT "ESPACE"
340 PAPER o:PEN 1 
350 PAPER 3:PEN 1:LOCATE 18,22:PRINT "      "
360 IF INKEY$=" "THEN a=9999 
370 NEXT
380 '
390 '               MENU
400 '
410 PAPER 0:CLS:PAPER 1:PEN 3:LOCATE 14,1:PRINT "FAIS TON CHOIX":LOCATE 1,4:PRINT "EN APPUYANT SUR":LOCATE 25,4:PRINT "POUR OBTENIR"
420 PAPER 2:PEN 3:LOCATE 8,9:PRINT "1":LOCATE 25,9:PRINT "PHRASE COURTE":LOCATE 5,11:PRINT "ou 2":LOCATE 25,11:PRINT "PHRASE LONGUE"
430 IF INKEY$<>"" THEN 430
440 IF INKEY(64)<>0 AND INKEY(65)<>0 THEN 430
450 IF INKEY(64)=0 THEN NBMOT=11:LOCATE 5,11:PAPER 0:PRINT "                                 " ELSE NBMOT=22:PAPER 0:LOCATE 8,9:PRINT "                                ":LOCATE 5,11:PRINT"   "
460 PAPER 3:PEN 1:LOCATE 8,13:PRINT "3":LOCATE 25,13:PRINT "AFFICHAGE COURT":LOCATE 5,15:PRINT "ou 4":LOCATE 25,15:PRINT "AFFICHAGE LONG"    
470 IF INKEY$<>"" THEN 470
480 IF INKEY(57)<>0 AND INKEY(56)<>0 THEN 470
490 IF INKEY(57)=0 THEN AC=6000:LOCATE 5,15:PAPER 0:PRINT "                                  " ELSE AC=12000:PAPER 0:LOCATE 8,13:PRINT "                                ":LOCATE 5,15:PRINT"   "
500 PAPER 3:PEN 2:LOCATE 8,17:PRINT "5":LOCATE 25,17:PRINT "REFLEXION COURTE":LOCATE 5,19:PRINT "ou 6":LOCATE 25,19:PRINT "REFLEXION LONGUE"
510 IF INKEY$<>"" THEN 510
520 IF INKEY(49)<>0 AND INKEY(48)<>0 THEN 510
530 IF INKEY(49)=0 THEN RC=500:LOCATE 5,19:PAPER 0:PEN 1:PRINT "                                    " ELSE RC=1000:PEN 1:PAPER 0:LOCATE 8,17:PRINT "                                ":LOCATE 5,19:PRINT"   "
540 FOR y=1 TO 500:NEXT
550 CLS:PEN 2:LOCATE 12,12:PRINT "ATTENTION AU DEPART !":FOR a=1 TO 2000:NEXT
560 '
570 '        début   de   partie
580 '
590 RANDOMIZE TIME:y=INT(RND*10)+1
600 IF NBMOT=22 THEN 720:'PHRASE LONGUE
610 ON y GOTO 620,630,640,650,660,670,680,690,700,710
620 RESTORE 2680:GOTO 860
630 RESTORE 2690:GOTO 860
640 RESTORE 2700:GOTO 860
650 RESTORE 2710:GOTO 860
660 RESTORE 2720:GOTO 860
670 RESTORE 2730:GOTO 860
680 RESTORE 2740:GOTO 860
690 RESTORE 2750:GOTO 860
700 RESTORE 2760:GOTO 860
710 RESTORE 2770:GOTO 860
720 ON y GOTO 730,740,750,760,770,780,790,800,810,820
730 RESTORE 2580:GOTO 860
740 RESTORE 2590:GOTO 860
750 RESTORE 2600:GOTO 860
760 RESTORE 2610:GOTO 860
770 RESTORE 2620:GOTO 860
780 RESTORE 2630:GOTO 860
790 RESTORE 2640:GOTO 860
800 RESTORE 2650:GOTO 860
810 RESTORE 2660:GOTO 860
820 RESTORE 2670:GOTO 860
830 '
840 '             AFFICHAGE PHRASE
850 '
860 FOR t=1 TO nbmot:READ mot$(t):NEXT
870 CLS:PAPER 0:PEN 1:v=0:vv=0:reste=0
880 FOR t=1 TO nbmot
890 IF mot$(t)="&" THEN mot$(t)=","
900 LOCATE 1+v,3+vv:PRINT mot$(t):v=v+LEN(mot$(t))+1
910 reste=40-v
920 IF t=nbmot THEN 950
930 IF reste<LEN(mot$(t+1)) THEN v=0:vv=vv+2
940 NEXT
950 IF aide>=1 THEN PAPER 0:PEN 1:FOR a=1 TO 2000:NEXT:v=0:vv=0:reste=0:GOTO 1310
960 v=0:vv=0:reste=0:FOR a=1 TO AC:NEXT
970 '
980 '          NB DE MOTS ?
990 '
1000 ma=ma+1:CLS:LOCATE 15,15:PRINT "Combien de mots":LOCATE 11,17:PRINT " désires-tu retrouver?":PEN 2:LOCATE 18,19:PRINT "(1 à ":LOCATE 23,19:PRINT NBMOT-2:LOCATE 26,19:PRINT ")":PEN 1
1010 PEN 1:LOCATE 13,21:PRINT "Ensuite, fais ENTER"
1020 IF INKEY$<>"" THEN 1020
1030 qqq$=INKEY$:
1040 IF qqq$="" THEN 1030
1050 IF INKEY(18)=0 OR INKEY(6)=0 THEN 1110
1060 IF INKEY(79)=0 THEN 2540:'efflettre
1070 IF ASC(qqq$)<48 OR ASC(qqq$)>57 THEN 1030
1080 IF LEN(q$)=2 THEN q$=LEFT$(q$,1):s=s-1
1090 s=s+1:LOCATE 20+s,24:PEN 3:PRINT qqq$:PEN 1:q$=q$+qqq$
1100 GOTO 1030
1110 IF VAL(q$)>NBMOT-2 THEN q$="":s=0:LOCATE 21,24:PRINT "  ":GOTO 1020
1120 IF q$="" THEN 1020
1130 toumot=toumot+VAL(q$):CLS
1140 '
1150 '         MOTS A TROUVER
1160 '
1170 FOR m=1 TO VAL(q$)
1180 RANDOMIZE TIME:x(m)=INT(RND*NBMOT)+1
1190 n=1
1200 FOR r=1 TO m
1210 IF x(m)=x(m-n) THEN 1180
1220 n=n+1
1230 NEXT 
1240 IF mot$(x(m))="," THEN 1180
1250 IF mot$(x(m))="." THEN 1180
1260 NEXT
1270 '
1280 '        PHRASE AVEC TROUS
1290 '
1300 CLS
1310 PAPER 2:PEN 3:LOCATE 17,1:PRINT " MANCHE":LOCATE 24,1:PRINT MA:PAPER 0:PEN 1
1320 FOR t=1 TO nbmot
1330 IF mot$(t)="&" THEN mot$(t)=","
1340 FOR m=1 TO VAL(q$)
1350 IF t=x(m)  THEN  2430
1360 NEXT
1370 LOCATE 1+v,3+vv:PRINT mot$(t):v=v+LEN(mot$(t))+1
1380 reste =40-v
1390 IF t=nbmot THEN 1420
1400 IF reste<LEN(mot$(t+1)) THEN v=0:vv=vv+2
1410 NEXT
1420 ' 
1430 '       ECRIRE MOTS DEMANDES
1440 PEN 2:LOCATE 11,15:PRINT "Ecris un mot, puis enter":PEN 1
1450 PAPER 3:PEN 1:LOCATE 16,18:PRINT "            "
1460 PAPER 0:PEN 3:FOR aa=1 TO 5:LOCATE 3,15:PRINT CHR$(154):LOCATE 38,15:PRINT CHR$(154):LOCATE 4,15:PRINT CHR$(154):LOCATE 37,15:PRINT CHR$(154):LOCATE 5,15:PRINT CHR$(243):LOCATE 36,15:PRINT CHR$(242)
1470 FOR a=1 TO 100:NEXT:LOCATE 3,15:PRINT "   ":LOCATE 36,15:PRINT "   ":FOR a=1 TO 100:NEXT:NEXT
1480 PAPER 0:PEN 2:LOCATE 2,24:PRINT "COPY = AIDE":PEN 1
1490 LOCATE 15,24:PRINT "Tu as ":PEN 2:LOCATE 21,24:PRINT "  ":aider=2*VAL(q$)-aide
1500 IF aider<0 THEN aider=0
1510 LOCATE 21,24:PRINT aider:PEN 1:LOCATE 25,24:PRINT "aide";:IF AIDER>1 THEN PRINT "s"ELSE PRINT" "
1520 PEN 3:LOCATE 34,24:PRINT "CLR=fin":PEN 1
1530 LOCATE 15,25:PRINT "Tu as ":PEN 2:LOCATE 21,25
1540 PRINT FAUTE:LOCATE 25,25:PEN 1:PRINT "faute";:IF faute>1 THEN PRINT"s"
1550 IF INKEY$<>"" THEN 1550
1560 rep$=""
1570 FOR A=1 TO RC
1580 qq$=INKEY$
1590 'PAPER 0:PEN 2:LOCATE 11,16:PRINT "========================":FOR a=1 TO 100:NEXT:PEN 1:LOCATE 11,16:PRINT "                        ":FOR a=1 TO 100:NEXT:PAPER 3
1600 'IF qq$="" THEN 2150
1610 IF INKEY(9)=0 AND aider THEN PEN 3:PAPER 0:aide=aide +1:v=0:vv=0:reste=0:GOTO 880:'aide
1620 IF INKEY(9)=0 AND aider=0 THEN PAPER 0:PEN 3:LOCATE 5,21:PRINT "Impossible,capital aides epuisé !":FOR a=1 TO 3000:NEXT:LOCATE 5,21:PRINT "                                 ":PAPER 0:PEN 1:GOTO 1420:'retour ecriture 
1630 IF INKEY(18)=0 OR INKEY(6)=0 THEN 1730
1640 IF INKEY(16)=0 THEN 2110:'CLR=fin
1650 IF qq$="" THEN 1690
1660 IF INKEY(79)=0 THEN 2480:'efface 
1670 IF LEN(rep$)=12 THEN rep$=LEFT$(rep$,11):va=va-1
1680 PAPER 3::LOCATE 16+va,18:PRINT LOWER$(qq$):rep$=rep$+LOWER$(qq$):va=va+1
1690 NEXT
1700 PAPER 0:LOCATE 4,20:PRINT "Hélas,le temps s'écoule trop vite":GOTO 1810
1710 '         TEST    REPONSE
1720 '
1730 va=0
1740 IF rep$="" THEN 1800
1750 FOR m=1 TO VAL(q$)
1760 IF rep$=mot$(x(m)) THEN 1860
1770 NEXT
1780 ' faux
1790 '
1800 PAPER 0:LOCATE 4,20:PRINT "Hélas,ce mot est bien mal écrit  !"
1810 faute=faute+1:FOR a=1 TO 2000:NEXT:PAPER 3:LOCATE 16,18:PRINT "            ":PAPER 0
1820 IF faute>2*VAL(q$) THEN LOCATE 4,20:PEN 2:PRINT "C'était la dernière faute permise ":LOCATE 15,22:PRINT "C'EST TERMINE":FOR A=1 TO 3000:NEXT:PEN 1:GOTO 2110:'bilan
1830 PAPER 0:PEN 1:LOCATE 4,20:PEN 3:PRINT "    Tu peux encore essayer...      ":FOR a=1 TO 2000:NEXT:LOCATE 4,20:PEN 1:PRINT "                                    "
1840 rep$="":va=0:PAPER 0:GOTO 1420
1850 ' bien
1860 PAPER 0:PEN 1:LOCATE 2,20:PRINT "Ce mot est bien écrit, félicitation !
1870 v=0:vv=0:reste=0
1880 FOR t=1 TO nbmot
1890 IF mot$(t)="&" THEN mot$(t)=","
1900 FOR m=1 TO VAL(q$)
1910 IF t=x(m) THEN 2370
1920 NEXT
1930 LOCATE 1+v,3+vv:PRINT mot$(t):v=v+LEN(mot$(t))+1
1940 reste=40-v
1950 IF t=nbmot THEN 1980
1960 IF reste<LEN(mot$(t+1)) THEN v=0:vv=vv+2
1970 NEXT
1980 point=point+10:GOTO 1990
1990 '
2000 '                  notation
2010 '
2020 PAPER 0:PEN 1:LOCATE 15,24:PRINT "ENTER pour la suite  ":PEN 3:LOCATE 34,24:PRINT "CLR=fin":PEN 1
2030 LOCATE 1,24:PRINT "REUSSITE"
2040 REU=POINT*100ç (VAL(Q$)*10):PEN 2:LOCATE 9,24:PRINT REU:LOCATE 13,24:PRINT "%":PEN 1
2050 IF INKEY$<>"" THEN 2050
2060 PEN 3:LOCATE 15,24:PRINT "ENTER":FOR A=1 TO 100:NEXT:LOCATE 15,24:PRINT "     ":FOR A=1 TO 100:NEXT:PEN 1
2070 IF INKEY(16)=0 THEN 2110:'CLR=fin
2080 IF INKEY(18)<>0 AND INKEY(6)<>0 THEN 2060
2090 IF point=10*VAL(q$) THEN rep$="":v=0:vv=0:reste=0:reu=0:GOTO 2110
2100 rep$="":v=0:vv=0:reste=0:GOTO 1300
2110 '
2120 '        fin     bilan
2130 '
2140 CLS:PAPER 0
2150 PAPER 1:PEN 3:LOCATE 12,2:PRINT "BILAN MANCHE":LOCATE 24,2:PRINT MA:PAPER 0:PEN 1
2160 LOCATE 1,4:PRINT "Tu as écrit correctement":PEN 2:LOCATE 27,4:PRINT point/10:PEN 1:LOCATE 31,4:PRINT "mot";:IF point>10 THEN PRINT "s";
2170 PRINT " /":PEN 2:LOCATE 37,4:PRINT VAL(q$)
2180 PEN 3:LOCATE 10,8:PRINT "Tu as demandé":PEN 1:LOCATE 24,8:PRINT aide:PEN 3:LOCATE 28,8:PRINT "aide";:IF aide>1 THENPRINT"s"
2190 LOCATE 10,10:PRINT "Tu as fait":PEN 1:LOCATE 21,10:PRINT faute:PEN 3:LOCATE 25,10:PRINT "faute";:IF faute>1 THEN PRINT"s"
2200 PEN 2:LOCATE 5,12:PRINT "Tu as obtenu":PEN 3:LOCATE 18,12:somme=4*point/10-(aide+faute)
2210 IF somme<0 THEN somme=0
2220 PRINT somme:PEN 1:LOCATE 22,12:PRINT "pour cette manche"
2230 PAPER 3:PEN 2:LOCATE 15,18:PRINT "TOTAL :"
2240 total=total+somme
2250 LOCATE 22,18:PRINT total:PAPER 1:PEN 3:
2260 PAPER 1:PEN 3:LOCATE 8,23:PRINT "ENTER":LOCATE 8,25:PRINT "ESPACE":PAPER 0:PEN 1:LOCATE 14,23:PRINT "pour la manche":LOCATE 29,23:PEN 2:PRINT ma+1:PEN 1:LOCATE 15,25:PRINT "pour le menu":FOR a=1 TO 100:NEXT
2270 LOCATE 8,23:PRINT "     ":LOCATE 8,25:PRINT "      ":FOR a=1 TO 100:NEXT
2280 '
2290 '
2300 IF INKEY(18)=0 OR INKEY(6)=0 THEN 2360 
2310 IF INKEY(47)=0 THEN AC=0:TOTAL=0:MA=0:Q$="":RC=0:somme=0:NBMOT=0:faute=0:aide=0:point=0:va=0:s=0:GOTO 380:'MENU
2320 IF INKEY$="" THEN 2260
2330 GOTO 2260
2340 '          manche suivante
2350 '
2360 q$="":s=0:va=0:aide=0:faute=0:point=0:CLS:GOTO 590:' manche suivante;autre phrase
2370 IF mot$(x(m))=rep$ THEN PEN 3:LOCATE 1+v,3+vv:PRINT mot$(x(m)):v=v+LEN(mot$(x(m)))+1:x(m)=0:PEN 1:GOTO 1940
2380 FOR u=1 TO LEN(mot$(x(m)))
2390 PEN 2:LOCATE 1+v+av,3+vv:PRINT "-":av=av+1:PEN 1
2400 NEXT
2410 v=v+LEN(mot$(t))+1 :av=0
2420 GOTO 1940
2430 FOR u=1 TO LEN(mot$(x(m)))
2440 PEN 2:LOCATE 1+v+av,3+vv:PRINT "-":av=av+1:PEN 1
2450 NEXT
2460 v=v+LEN(mot$(t))+1 :av=0
2470 GOTO 1380
2480 '         s/p efface lettre
2490 IF rep$="" THEN 2530
2500 IF va=0 THEN 2530
2510 va=va-1
2520 LOCATE 16+va,18:PRINT " ":rep$=LEFT$(rep$,LEN(rep$)-1):'va=va-1
2530 GOTO 1690
2540 '         s/p efface lettre
2550 IF q$="" THEN 2570
2560 LOCATE 20+s,24:PRINT " ":q$=LEFT$(q$,LEN(q$)-1):s=s-1
2570 GOTO 1100
2580 DATA sur,ce,chemin,en,terre,&,le,petit,cheval,blanc,tire,péniblement,un,lourd,chariot,noir,rempli,de,belles,pommes,rouges,.
2590 DATA nous,fabriquons,maintenant,des,bateaux,gonflables,vraiment,confortables,qui,conviennent,parfaitement,pour,effectuer,certaines,petites,promenades,au,bord,de,la,mer,.
2600 DATA ces,beaux,skis,&,destinés,aux,bons,skieurs,&,permettent,de,glisser,facilement,sur,un,sol,accidenté,comportant,de,nombreuses,petites,bosses
2610 DATA le,beau,ballon,de,football,que,nous,vous,proposons,est,un,modle,compétition,&,réalisé,en,cuir,naturel,imperméable,cousu,main,.
2620 DATA cette,superbe,montre,&,dans,son,boitier,en,acier,chromé,&,possde,une,minuscule,trotteuse,centrale,et,un,dateur,indiquant,le,mois
2630 DATA cet,arbuste,décoratif,est,une,plante,qui,donne,de,belles,fleurs,rouges,.,ses,feuilles,fragiles,ne,tombent,pas,en,hiver,.
2640 DATA dessinant,dans,le,ciel,bleu,un,triangle,parfait,&,neuf,avions,passent,en,vrombissant,avec,une,longue,écharpe,de,fumée,tricolore,.
2650 DATA pour,dessiner,correctement,un,bonhomme,harmonieux,&,la,hauteur,totale,de,ce,personnage,est,à,peu,prs,huit,fois,sa,figure,.
2660 DATA bien,avant,le,peloton,&,un,coureur,étranger,arrive,grand,vainqueur,au,sommet,du,col,aprs,une,épuisante,montée,en,solitaire,.
2670 DATA la,rage,est,une,maladie,grave,et,bien,sur,contagieuse,qui,peut,parfaitement,se,transmettre,aux,hommes,comme,à,certains,animaux,.
2680 DATA papa,coupe,un,petit,sapin,dans,la,foret,pour,noel,.
2690 DATA le,cochon,fait,une,maison,en,paille,avec,son,papa,.
2700 DATA un,petit,écureuil,ramasse,des,pommes,rouges,avec,un,sac,.
2710 DATA la,cheminée,de,maman,est,dans,une,petite,maison,rose,.
2720 DATA la,petite,fille,ne,joue,pas,au,ballon,avec,elle,.
2730 DATA le,clown,porte,un,chapeau,avec,une,petite,fleur,rouge,.
2740 DATA maman,a,un,peigne,et,le,livre,dans,son,sac,.
2750 DATA kikou,porte,le,chat,dans,son,lit,et,il,joue,.
2760 DATA mami,mange,une,noisette,dans,sa,petite,maison,avec,papi,.
2770 DATA julien,a,une,bouche,et,un,nez,sur,le,cou,.