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,. |