35 'ordipuz /lavergne georges 5 rue des ecoles 37420 avoine/tel 47589532/cpc 464-664-6128/jan 87
40 MODE 1:CLS:DIM NUM(25),chi(25),x(25),lettre$(40)
42 'ON BREAK CONT
45 ' variables========================================
46 'nbpiece=nombre de pieces du puzzle/ligne=nb de lignes quadrillage/modvisi=modele visible(1)-non visible(0)/num=numero des pieces en ordre/chi=numero pieces désordre/modeles=pour affichage modèle(1)/pieces=affichage pieces/bien=affichage piece trouvee 

47 ' modmont=aide affichage modele(1)/erreur=nb d'erreurs/aider=nb d'aides/aide=aide affichage une piece/z=numero piece désordre pour aide/rep$=numero piece a placer/repp$=numero de l'emplacement/juste=une piece bien placée/
50 '            accents
55 SYMBOL AFTER 64
56 SYMBOL 125,&60,&10,&3C,&66,&7E,&60,&3C
57 KEY 135,CHR$(123)
58 SYMBOL 123,&6,&8,&3C,&66,&7E,&60,&3C
59 KEY 128,CHR$(125)
60 SYMBOL 64,&60,&10,&78,&3C,&7C,&CC,&76
61 KEY 129,CHR$(64)
62 SYMBOL 92,&0,&0,&3C,&66,&60,&3E,&8,&18
63 KEY 132,CHR$(92)
64 SYMBOL 124,&30,&8,&66,&66,&66,&66,&3E
65 KEY 137,CHR$(124)
66 SYMBOL 94,&18,&24
67 KEY 134,CHR$(94)
68 SYMBOL 93,&1C,&32,&38,&6C,&38,&10,&90,&60
69 KEY 131,CHR$(93)
75 ' présentation========================================
76 INK 2,9:INK 3,26:PAPER 2:PEN 3:BORDER 9:CLS:IF start THEN 79 
77 v=10:texte$="J'ai l'honneur de vous présenter":GOSUB 29200:v=14:texte$="O R D I P U Z":GOSUB 29200:v=15:texte$="=============":GOSUB 29200:FOR d=1 TO 2000:NEXT
79 CLS:v=12:texte$="Désirez-vous les instructions?":GOSUB 29200:start=-1
80 IF INKEY$="" THEN 80
81 IF INKEY(34)=0 THEN 3000 ELSE 83
83 INK 2,9:INK 3,26:PAPER 2:PEN 3:BORDER 9:CLS:GOTO 3100:'choix options
100 CLS:INK 2,14:INK 3,1:INK 0,0:INK 1,26:CLS:BORDER 0:PAPER 0:PEN 2
102 CLS:PLOT 5,395,2:DRAW 5,24,2:DRAW 635,24,2:DRAW 635,395,2
103 PLOT 5,220,2:DRAW 635,220,2:PLOT 220,220,2:DRAW 220,24,2:PLOT 420,220,2:DRAW 420,24,2
104 PEN 2:LOCATE 15,13:PRINT "CLR = sortie":LOCATE 18,22:PRINT "ENTER":LOCATE 15,23:PRINT "pour valider":PEN 1
105 PEN 2:LOCATE 2,11:PRINT "COPY = aide       TAB = modèle visible":PEN 1
110 'dessin
112 'nbpiece=16:ligne=4:modvisi=1
115 'RESTORE 30210
116 'RESTORE 30010
118 'ON BREAK CONT
120 FOR t=1 TO nbpiece:READ num(t):NEXT
122 ' le modele=========================
123 IF modvisi=0 THEN 185
125 ss=12:aa=2:modeles=1
130 FOR t=1 TO nbpiece
140 ON num(t) GOTO 1010,1012,1014,1016,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066,1068,1070,1072,1074,1076,1078,1080,1082,1084,1086,1088,1090                               
150 aa=aa+2
160 IF aa=(nbpiece/ligne)*2+2 THEN aa=2:ss=ss+2
165 IF t=nbpiece THEN 180
170 NEXT t
180 PLOT 32,207,1:DRAW 32+32*ligne,207,1:DRAW 32+32*ligne,207-32*ligne,1:DRAW 32,207-32*ligne,1:DRAW 32,207,1
185 MODELES=0
190 IF MODMONT=1 THEN 2330
200 ' la grille===========================
205 aaa=0:sss=0:a=0:s=0
210 FOR t=1 TO nbpiece
221 PLOT 447+aaa,208-sss,1:DRAW 480+aaa,208-sss,1:DRAW 480+aaa,175-sss,1:DRAW 447+aaa,175-sss,1:DRAW 447+aaa,208-sss,1
225 LOCATE 30+a,14+s:PEN 2:PRINT CHR$(64+t):PEN 1
230 aaa=aaa+16*2:a=a+2
240 IF aaa=16*2*ligne THEN aaa=0:sss=sss+2*16:a=0:s=s+2
245 IF t=nbpiece THEN 260
250 NEXT
260 'disposition des pieces==============
261 LOCATE 4,3:PEN 2:PRINT "Patience, je mélange les pièces.":PEN 1:FOR w=1 TO 500:NEXT
263 IF re=1 THEN RESTORE 30040:GOTO 289
264 IF re=2 THEN RESTORE 30050:GOTO 289
265 IF re=3 THEN RESTORE 30060:GOTO 289
266 IF re=4 THEN RESTORE 30070:GOTO 289
267 IF re=5 THEN RESTORE 30080:GOTO 289
268 IF re=6 THEN RESTORE 30090:GOTO 289
269 IF re=7 THEN RESTORE 30100:GOTO 289
270 IF re=8 THEN RESTORE 30110:GOTO 289
271 IF re=9 THEN RESTORE 30120:GOTO 289
272 IF re=10 THEN RESTORE 30130:GOTO 289
273 IF re=11 THEN RESTORE 30140:GOTO 289
274 IF re=12 THEN RESTORE 30150:GOTO 289
275 IF re=13 THEN RESTORE 30160:GOTO 289
276 IF re=14 THEN RESTORE 30170:GOTO 289
277 IF re=15 THEN RESTORE 30180:GOTO 289
278 IF re=16 THEN RESTORE 30190:GOTO 289
279 IF re=17 THEN RESTORE 30200:GOTO 289
280 IF re=18 THEN RESTORE 30210:GOTO 289
281 IF re=19 THEN RESTORE 30000:GOTO 289
282 IF re=20 THEN RESTORE 30010:GOTO 289
283 IF re=21 THEN RESTORE 30020:GOTO 289
284 IF re=22 THEN RESTORE 30030
289 FOR t=1 TO nbpiece
290 RANDOMIZE TIME:x(t)=INT(RND*nbpiece)+1
295 n=1
300 FOR r=1 TO t
305 IF x(t)=x(t-n) THEN 290
310 n=n+1
315 NEXT
317 READ chi(x(T))
320 NEXT
322 LOCATE 4,3:PRINT "                                 "
323 ss=1:aa=1:pieces=1:a=0:s=0:aaa=0:sss=0
325 FOR t=1 TO nbpiece
330 ON chi(t) GOTO 1010,1012,1014,1016,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066,1068,1070,1072,1074,1076,1078,1080,1082,1084,1086,1088,1090
332 PLOT 16+aaa,383-sss,1:DRAW 47+aaa,383-sss,1:DRAW 47+aaa,352-sss,1:DRAW 16+aaa,352-sss,1:DRAW 16+aaa,384-sss,1
333 LOCATE 1+a,1+s:PEN 2:PRINT t:PEN 1
335 aa=aa+3:a=a+3:aaa=aaa+48
340 IF aa=40 THEN aa=2:ss=ss+4:a=1:s=s+4:aaa=16:sss=sss+64
345 IF t=nbpiece THEN 356 
350 NEXT
355 '  placer les pieces==================
356 pieces=0
360 LOCATE 3,25:PRINT "PIECE:"
365 IF INKEY$<>"" THEN 365
370 q$=INKEY$:IF q$="" THEN 370
371 IF INKEY(16)=0 THEN 2000:' fin
372 IF INKEY(79)=0 THEN 29000:' efface
373 IF INKEY(18)=0 OR INKEY(6)=0 THEN 404:' validation
374 IF INKEY(9)=0 THEN 2200:'aide
375 IF INKEY(68)=0 THEN 2300:'mod. visible
376 IF ASC(q$)<48 OR ASC(q$)>57 THEN 370
377 IF av=2 THEN rep$=LEFT$(rep$,1):av=1
380 LOCATE 10+av,25:PEN 2:PRINT q$:PEN 1:rep$=rep$+q$:av=av+1
400 GOTO 370
404 IF rep$="" THEN 370
405 IF VAL(rep$)<1 OR VAL(rep$)>nbpiece THEN LOCATE 10,25:PRINT "  ":rep$="":av=0:GOTO 370
407 FOR t=1 TO nbpiece
408 IF t<>VAL(rep$) THEN 410
409 IF chi(t)=0 THEN LOCATE 10,25:PRINT "  ":rep$="":av=0:GOTO 370
410 NEXT
412 ' demande de l'emplacement=============
415 LOCATE 20,25:PRINT "EMPLACEMENT:"
420 IF INKEY$<>"" THEN 420
430 q$=INKEY$:IF q$="" THEN 430
440 IF INKEY(16)=0 THEN 2000:' fin
450 IF INKEY(18)=0 OR INKEY(6)=0 THEN 485: ' validation
455 IF INKEY(9)=0 THEN rep$="":GOTO 2200:' aide
457 IF INKEY(68)=0 THEN rep$="":GOTO 2300:'mod. visible
460 IF ASC(UPPER$(q$))<64 OR ASC(UPPER$(q$))>89 THEN 430
470 LOCATE 33,25:PEN 2:PRINT UPPER$(q$):PEN 1:repp$=UPPER$(q$)
480 GOTO 430
485 IF repp$="" THEN 430
490 IF ASC(repp$)-64 >nbpiece THEN LOCATE 33,25:PRINT " ":repp$="":GOTO 430
500 'controle reponse======================
510 IF chi(VAL(rep$))=num(ASC(repp$)-64) THEN 600 
520 '  faux ===============================
522 IF modvisi=1 THEN erreur=erreur+2:GOTO 530
525 erreur=erreur+1
530 FOR w=1 TO 3:LOCATE 17,15+w:PAPER 1:PEN 3:PRINT "        ":NEXT :LOCATE 18,17:PRINT "ERREUR":PAPER 0:PEN 1:FOR w=1 TO 2000:NEXT 
535 rep$="":repp$="":
540 FOR w=1 TO 3:LOCATE 17,15+w:PAPER 0:PEN 1:PRINT "        ":NEXT 
542 IF erreur>=nbpiece+1 THEN FOR d=1 TO 2000:NEXT:GOTO 2100:' partie interrompue:trop d'erreurs
545 LOCATE 1,25:PRINT "                                    ":av=0:GOTO 355:' autre piece
600 '  bien ===============================
605 ss=1:aa=1:a=0:s=0:juste=juste+1
610 FOR t=1 TO nbpiece
612 IF aide=0 THEN 620
614 IF t<>z THEN 650
615 GOTO 625
620 IF t<>VAL(rep$) THEN 650
625 LOCATE 1+aa,1+ss:PRINT "  ":LOCATE 1+aa,2+ss:PRINT "  "
650 aa=aa+3
655 IF aa=40 THEN aa=2:ss=ss+4
660 IF t=nbpiece THEN 667 
665 NEXT
667 aa=28:ss=12:bien=1
670 FOR t=1 TO nbpiece
671 IF aide=0 THEN 677
673 IF num(t)<>chi(z) THEN 690
675 GOTO 680
677 IF num(t)<>num(ASC(repp$)-64) THEN 690
680 ON num(t) GOTO 1010,1012,1014,1016,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066,1068,1070,1072,1074,1076,1078,1080,1082,1084,1086,1088,1090
690 aa=aa+2
695 IF aa=28+(ligne*2) THEN aa=28:ss=ss+2
700 IF t=nbpiece THEN 707
705 NEXT
707 IF aide=0 THEN 710
708 av=0:bien=0:chi(z)=0:LOCATE 1,25:PRINT "                                      ":GOTO 712
710 av=0:bien=0:chi(VAL(rep$))=0:rep$="":LOCATE 1,25:PRINT "                                      "
712 IF aider>=nbpiece+1 THEN FOR d=1 TO 2000:NEXT:GOTO 2100:'partie interrompue:trop d'aides
715 IF juste=nbpiece THEN 750
720 aide=0:GOTO 355:'demande nouvelle piece
750 ' bilan =================================
760 PAPER 2:PEN 1:FOR q=1 TO 3:LOCATE 18,16+q:PRINT "       ":NEXT:LOCATE 19,18:PRINT "BRAVO":FOR Q=1 TO 3000:NEXT
765 INK 2,9:INK 3,26:PAPER 2:PEN 3:BORDER 9:CLS
770 v=2:texte$="Ce puzzle est maintenant terminé.":GOSUB 29200
772 IF erreur>=1 THEN 790
775 IF erreur=0 THEN v=4:texte$="En fait, d'après les résultats":GOSUB 29200:v=6:texte$="en ma possession":GOSUB 29200:v=8:texte$="et après une sérieuse vérification,":GOSUB 29200:v=10:texte$="il apparait qu'aucune erreur n'a été":GOSUB 29200
776 IF aider=0 THEN 780
777 v=12:texte$="commise.":GOSUB 29200:v=14:texte$="Cependant, nous observons":GOSUB 29200:v=16:texte$="que vous avez eu de l'aide.":GOSUB 29200:v=19:texte$="La prochaine fois, sans aide,":GOSUB 29200:GOTO 785
780 v=12:texte$="commise.":GOSUB 29200:v=14:texte$="En conséquense directe,":GOSUB 29200:v=16:texte$="nous vous adressons solennellement":GOSUB 29200:v=19:texte$="NOS PLUS SINCERES FELICITATIONS, et":GOSUB 29200
785 v=22:texte$="nous vous invitons à renouveler cet":GOSUB 29200:v=23:texte$="exploit.":GOSUB 29200:GOTO 850
790 v=3:texte$="Nous renouvelons nos félicitations":GOSUB 29200:v=4:texte$="pour une telle performance":GOSUB 29200:v=5:texte$="en ces temps difficiles.":GOSUB 29200:v=8:texte$="Toutefois, et dans un but humanitaire,":GOSUB 29200
795 v=10:texte$="nous avons le regret de vous rappeler":GOSUB 29200:v=12:
800 IF erreur>1 THEN 805 ELSE texte$="votre seule et regrettable erreur.":GOSUB 29200:
802 v=14:texte$="Bien sur,nous comprenons et pardonnons":GOSUB 29200:v=16:texte$="cette faiblesse passagère.":GOSUB 29200:v=18:texte$="Mais notre patience a des limites !":GOSUB 29200:v=20:texte$="VOUS POUVEZ FAIRE MIEUX !":GOSUB 29200:GOTO 815
805 texte$="vos "+STR$(erreur)+"  erreurs.":GOSUB 29200
810 v=14:texte$="Bien sur,nous comprenons et pardonnons":GOSUB 29200:v=16:texte$="ces faiblesses passagères.":GOSUB 29200:v=18:texte$="Mais notre patience a des limites !":GOSUB 29200:v=20:texte$="VOUS POUVEZ FAIRE MIEUX !":GOSUB 29200
815 V=22:TEXTE$="Et nous vous y invitons sans tarder.":GOSUB 29200
850 PAPER 0:PEN 1:LOCATE 2,25:PRINT "APPUYER SUR UNE TOUCHE POUR LE MENU":FOR Z=1 TO 100:NEXT:PAPER 1:PEN 0:LOCATE 2,25:PRINT "APPUYER SUR UNE TOUCHE POUR LE MENU":FOR Z=1 TO 100:NEXT
860 IF INKEY$="" THEN 850
870 PAPER 0:PEN 1:GOTO 4200
1000 ' les 25 cases
1010 LOCATE 1+aa,1+ss:PAPER 1:PEN 1:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(214):LOCATE 2+aa,1+ss:PRINT CHR$(214):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1012 LOCATE 1+aa,1+ss:PAPER 1:PEN 3:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PRINT CHR$(143):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1014 LOCATE 1+aa,1+ss:PAPER 1:PEN 3:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PRINT CHR$(143):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1016 LOCATE 1+aa,1+ss:PAPER 1:PEN 3:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PRINT CHR$(143):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1017 '5
1018 LOCATE 1+aa,1+ss:PAPER 1:PEN 3:PRINT CHR$(215):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 1:PRINT CHR$(143):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(215):PAPER 0:PEN 1:GOTO 1100
1019 '6
1020 LOCATE 1+aa,1+ss:PAPER 1:PEN 3:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 2:PRINT CHR$(143):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1021 '7
1022 LOCATE 1+aa,1+ss:PAPER 1:PEN 2:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(214):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1023 '8
1024 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(215):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(214):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1025 '9
1026 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(215):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 2:PAPER 2:PRINT CHR$(143):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1027 '10
1028 LOCATE 1+aa,1+ss:PAPER 2:PEN 2:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(143):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1029 '11
1030 LOCATE 1+aa,1+ss:PAPER 1:PEN 3:PRINT CHR$(213):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(214):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(143):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1031 '12
1032 LOCATE 1+aa,1+ss:PAPER 2:PEN 2:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(214):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(213):PAPER 0:PEN 1:GOTO 1100
1033 '13
1034 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(143):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1035 '14
1036 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(215):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(212):LOCATE 2+aa,1+ss:PEN 2:PAPER 2:PRINT CHR$(143):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1037 '15
1038 LOCATE 1+aa,1+ss:PAPER 1:PEN 3:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 1:PRINT CHR$(212):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(215):PAPER 0:PEN 1:GOTO 1100
1039 '16
1040 LOCATE 1+aa,1+ss:PAPER 1:PEN 3:PRINT CHR$(214):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(213):LOCATE 2+aa,1+ss:PEN 2:PAPER 2:PRINT CHR$(143):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1041 '17
1042 LOCATE 1+aa,1+ss:PAPER 2:PEN 2:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 2:PAPER 2:PRINT CHR$(143):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(215):PAPER 0:PEN 1:GOTO 1100
1043 '18
1044 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(213):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(212):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1045 '19
1046 LOCATE 1+aa,1+ss:PAPER 2:PEN 2:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(214):LOCATE 2+aa,1+ss:PEN 2:PAPER 2:PRINT CHR$(143):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1047 '20
1048 LOCATE 1+aa,1+ss:PAPER 2:PEN 2:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 1:PRINT CHR$(215):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(212):PAPER 0:PEN 1:GOTO 1100
1049 '21
1050 LOCATE 1+aa,1+ss:PAPER 1:PEN 1:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 1:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 1:PRINT CHR$(213):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(214):PAPER 0:PEN 1:GOTO 1100
1051 '22
1052 LOCATE 1+aa,1+ss:PAPER 2:PEN 2:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(143):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1053 '23
1054 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(215):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(214):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1055 '24
1056 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 2:PAPER 2:PRINT CHR$(143):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1057 '25
1058 LOCATE 1+aa,1+ss:PAPER 1:PEN 3:PRINT CHR$(212):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(215):LOCATE 2+aa,1+ss:PEN 1:PAPER 1:PRINT CHR$(143):PEN 1:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1059 '26
1060 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(212):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1061 '27
1062 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 2:PAPER 2:PRINT CHR$(143):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1063 '28
1064 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(143):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(213):PAPER 0:PEN 1:GOTO 1100
1065 '29
1066 LOCATE 1+aa,1+ss:PAPER 2:PEN 2:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(214):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1067 '30
1068 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(212):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(143):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(213):PAPER 0:PEN 1:GOTO 1100
1069 '31
1070 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(214):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(215):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1071 '32
1072 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(212):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(143):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1073 '33
1074 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(215):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 2:PAPER 2:PRINT CHR$(143):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1075 '34
1076 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(213):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(143):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1077 '35
1078 LOCATE 1+aa,1+ss:PAPER 2:PEN 2:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(143):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1079 '36
1080 LOCATE 1+aa,1+ss:PAPER 2:PEN 2:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 2:PAPER 2:PRINT CHR$(143):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1081 '37
1082 LOCATE 1+aa,1+ss:PAPER 2:PEN 2:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 2:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 2:PAPER 2:PRINT CHR$(143):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1083 '38
1084 LOCATE 1+aa,1+ss:PAPER 2:PEN 2:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 2:PAPER 2:PRINT CHR$(143):PEN 2:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1085 '39
1086 LOCATE 1+aa,1+ss:PAPER 2:PEN 2:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 2:PAPER 2:PRINT CHR$(143):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1087 '40
1088 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(143):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(215):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1089 '41
1090 LOCATE 1+aa,1+ss:PAPER 2:PEN 3:PRINT CHR$(214):LOCATE 1+aa,2+ss:PEN 3:PRINT CHR$(143):LOCATE 2+aa,1+ss:PEN 3:PAPER 2:PRINT CHR$(143):PEN 3:LOCATE 2+aa,2+ss:PRINT CHR$(143):PAPER 0:PEN 1:GOTO 1100
1100 IF modeles=1 THEN 150
1110 IF pieces=1 THEN 332
1120 IF bien=1 THEN 690
2000 ' abandon
2010 INK 2,9:INK 3,26:PAPER 2:PEN 3:BORDER 9:CLS
2020 v=1:texte$="Hélas,pourquoi cette brutale décision?":GOSUB 29200:v=3:texte$="N'avez-vous pas des remords ?":GOSUB 29200:v=5:texte$="Quoiqu'il en soit,":GOSUB 29200:v=7:texte$="les plus grands espoirs étaient":GOSUB 29200
2030 v=9:texte$="en vous":GOSUB 29200:v=11:texte$="et vous avez lachement abandonné.":GOSUB 29200:v=14:texte$="CE PUZZLE N'EST PAS TERMINE !":GOSUB 29200:v=17:texte$="Mais nous savons que vous etes":GOSUB 29200:v=19:texte$="courageux,":GOSUB 29200
2040 v=21:texte$="aussi,nous vous invitons à le prouver.":GOSUB 29200
2060 PAPER 0:PEN 1:LOCATE 2,25:PRINT "APPUYER SUR UNE TOUCHE POUR LE MENU":FOR Z=1 TO 100:NEXT:PAPER 1:PEN 0:LOCATE 2,25:PRINT "APPUYER SUR UNE TOUCHE POUR LE MENU":FOR Z=1 TO 100:NEXT
2070 IF INKEY$="" THEN 2060
2080 av=0:GOTO 4200:' début de jeu
2100 ' arret  trop de fautes/erreurs==========
2110 INK 2,9:INK 3,26:PAPER 2:PEN 3:BORDER 9:CLS
2112 IF erreur>nbpiece THEN 2120
2114 v=5:texte$="STOP !":GOSUB 29200:V=10:TEXTE$="Le nombre d'aides est trop élevé.":GOSUB 29200:v=12:texte$="Aussi, avons-nous pris":GOSUB 29200:v=14:texte$="la très pénible décision d'interrompre":GOSUB 29200:GOTO 2130
2120 v=5:texte$="STOP !":GOSUB 29200:V=10:TEXTE$="Le nombre d'erreurs est trop élevé.":GOSUB 29200:v=12:texte$="Aussi, avons-nous pris":GOSUB 29200:v=14:texte$="la très pénible décision d'interrompre":GOSUB 29200
2130 v=16:texte$="cette partie.":GOSUB 29200
2140 IF nbpiece=4 THEN 2170
2150 V=18:TEXTE$="Choisissez un puzzle plus petit et":GOSUB 29200:GOTO 2180
2170 v=18:texte$="Il n'y a pourtant pas plus facile !":GOSUB 29200:
2180 v=21:texte$="CONCENTREZ - VOUS !":GOSUB 29200
2190 PAPER 0:PEN 1:LOCATE 2,25:PRINT "APPUYER SUR UNE TOUCHE POUR LE MENU":FOR Z=1 TO 100:NEXT:PAPER 1:PEN 0:LOCATE 2,25:PRINT "APPUYER SUR UNE TOUCHE POUR LE MENU":FOR Z=1 TO 100:NEXT
2192 IF INKEY$="" THEN 2190
2195 GOTO 4200
2200 '  aide ===============================
2203 IF modvisi=1 THEN aide=1:aider=aider+3:GOTO 2210
2205 aide=1:aider=aider+2
2210 RANDOMIZE TIME
2220 z=INT(RND*nbpiece)+1
2230 FOR t=1 TO nbpiece
2240 IF t<>z THEN 2270
2250 IF chi(z)=0 THEN 2210 ELSE 2280
2270 NEXT
2280 GOTO 605:' placer piece 
2300 '  modele visible========================
2310 IF modvisi=1 THEN PEN 1:LOCATE 16,17:PRINT "MODELE DEJA":LOCATE 18,19:PRINT "VISIBLE":FOR d=1 TO 2000:NEXT:LOCATE 16,17:PRINT "           ":LOCATE 18,19:PRINT "        ":GOTO 370
2320 MODMONT=1:aider=aider+1:GOTO 125
2330 MODMONT=0 
2335 FOR D=1 TO 3000:NEXT:FOR D=1 TO 11:LOCATE 2,12+D:PRINT "            ":NEXT
2340 LOCATE 1,25:PRINT "                                       ":REP$="":GOTO 360
3000 ' instructions ========================================
3010 CLS:v=5:texte$="Le but est de refaire le dessin dont ":GOSUB 29200:v=7:texte$="les pièces sont mélangées.":GOSUB 29200:v=9:texte$="Vous pourrez choisir l'option":GOSUB 29200:v=11:texte$="avec modèle ou sans modèle visible.":GOSUB 29200
3020 v=13:texte$="Mais il faut savoir ":GOSUB 29200:v=15:texte$="qu'avec le modèle visible, ":GOSUB 29200:v=17:texte$="toute erreur ou aide demandée":GOSUB 29200:v=19:texte$="pénalisera davantage...":GOSUB 29200
3030 v=21:texte$="Voici les options possibles:":GOSUB 29200
3040 PAPER 0:PEN 1:LOCATE 2,25:PRINT "APPUYER SUR UNE TOUCHE POUR LA SUITE":FOR Z=1 TO 100:NEXT:PAPER 1:PEN 0:LOCATE 2,25:PRINT "APPUYER SUR UNE TOUCHE POUR LA SUITE":FOR Z=1 TO 100:NEXT
3050 IF INKEY$="" THEN 3040
3060 GOTO 83:' options
3100 ' options
3110 v=5:texte$="Choisissez le nombre de pièces :":GOSUB 29200:v=8:texte$="Appuyer sur 1 pour  4 pièces":GOSUB 29200:v=11:texte$="Appuyer sur 2 pour  9 pièces":GOSUB 29200:v=14:texte$="Appuyer sur 3 pour 16 pièces":GOSUB 29200
3120 v=17:texte$="Appuyer sur 4 pour 25 pièces":GOSUB 29200
3130 IF INKEY$<>"" THEN 3130
3140 q$=INKEY$:IF q$="" THEN 3140
3150 IF ASC(q$)<49 OR ASC(q$)>52 THEN 3140
3160 ON VAL(q$) GOTO 3162,3163,3164,3165
3162 nbpiece=4:ligne=2:GOTO 3170
3163 nbpiece=9:ligne=3:GOTO 3170
3164 nbpiece=16:ligne=4:GOTO 3170
3165 nbpiece=25:ligne=5
3170 CLS:v=10:texte$="Choisissez  le numéro du puzzle":GOSUB 29200:
3175 IF ligne=2 THEN 3180
3176 IF ligne=3 THEN 3190
3177 IF ligne=4 THEN 3200
3178 IF ligne=5 THEN 3210
3180 v=14:texte$="Appuyer sur un nombre de 1 à 9":GOSUB 29200:
3182 IF INKEY$<>"" THEN 3182
3183 q$=INKEY$:IF q$="" THEN 3183
3184 IF ASC(q$)<49 OR ASC(q$)>57 THEN 3183
3185 ON VAL(q$) GOTO 4000,4001,4002,4003,4004,4005,4006,4007,4008
3190 v=14:texte$="Appuyer sur un nombre de 1 à 5":GOSUB 29200:
3192 IF INKEY$<>"" THEN 3192
3193 q$=INKEY$:IF q$="" THEN 3192
3194 IF ASC(q$)<49 OR ASC(q$)>53 THEN 3193
3195 ON VAL(q$) GOTO 4009,4010,4011,4012,4013
3200 v=14:texte$="Appuyer sur un nombre de 1 à 4":GOSUB 29200:
3202 IF INKEY$<>"" THEN 3202
3203 q$=INKEY$:IF q$="" THEN 3203
3204 IF ASC(q$)<49 OR ASC(q$)>52 THEN 3203
3205 ON VAL(q$) GOTO 4014,4015,4016,4017
3210 v=14:texte$="Appuyer sur un nombre de 1 à 4":GOSUB 29200:
3212 IF INKEY$<>"" THEN 3212
3213 q$=INKEY$:IF q$="" THEN 3213
3214 IF ASC(q$)<49 OR ASC(q$)>52 THEN 3213
3215 ON VAL(q$) GOTO 4018,4019,4020,4021
3990 ' codes puzzle choisi
4000 RESTORE 30040:re=1:GOTO 4100
4001 RESTORE 30050:re=2:GOTO 4100
4002 RESTORE 30060:re=3:GOTO 4100
4003 RESTORE 30070:re=4:GOTO 4100
4004 RESTORE 30080:re=5:GOTO 4100
4005 RESTORE 30090:re=6:GOTO 4100
4006 RESTORE 30100:re=7:GOTO 4100
4007 RESTORE 30110:re=8:GOTO 4100
4008 RESTORE 30120:re=9:GOTO 4100
4009 RESTORE 30130:re=10:GOTO 4100
4010 RESTORE 30140:re=11:GOTO 4100
4011 RESTORE 30150:re=12:GOTO 4100
4012 RESTORE 30160:re=13:GOTO 4100
4013 RESTORE 30170:re=14:GOTO 4100
4014 RESTORE 30180:re=15:GOTO 4100
4015 RESTORE 30190:re=16:GOTO 4100
4016 RESTORE 30200:re=17:GOTO 4100
4017 RESTORE 30210:re=18:GOTO 4100
4018 RESTORE 30000:re=19:GOTO 4100
4019 RESTORE 30010:re=20:GOTO 4100
4020 RESTORE 30020:re=21:GOTO 4100
4021 RESTORE 30030:re=22:GOTO 4100
4100 CLS:v=10:texte$="Appuyer sur 1 pour le modèle visible":GOSUB 29200:v=14:texte$="ou sur 2 pour qu'il soit caché.":GOSUB 29200
4110 IF INKEY$<>"" THEN 4110
4120 q$=INKEY$:IF Q$="" THEN 4120
4130 IF ASC(q$)<49 OR ASC(q$)>50 THEN 4120
4140 IF VAL(q$)=1 THEN modvisi=1 ELSE modvisi=0
4150 GOTO 100
4200 'fin de partie- retour menu ===========
4210 juste=0:aide=0:nbpiece=0:ligne=0:erreur=0:aider=0:GOTO 75:'début de jeu
29000 ' efface lettre =======================
29010 IF rep$="" THEN 29050
29020 av=av-1:LOCATE 10+av,25:PRINT " ":rep$=LEFT$(rep$,LEN(rep$)-1)
29050 GOTO 370
29100 '  efface lettre=======================
29110 IF repp$="" THEN 29150
29120 LOCATE 33,25:PRINT " ":repp$=LEFT$(repp$,LEN(repp$)-1)
29150 GOTO 430
29200 '   machine a ecrire
29220 FOR q=1 TO LEN(texte$)
29230 lettre$(q)=MID$(texte$,q,1)
29232 IF lettre$(q)=" " THEN 29240 'FOR d=1 TO 80:NEXT:GOTO 29240
29235 SOUND 1,978,5,10,,,1
29240 LOCATE ((40-LEN(texte$))ç 2)+h,v:PEN 3:PRINT lettre$(q):h=h+1 'FOR d=1 TO 40:NEXT:h=h+1
29250 NEXT
29260 h=0:FOR d=1 TO 300:NEXT:RETURN
29990 'codes puzzle 25 pieces
30000 DATA 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25
30010 DATA 4,28,30,32,2,6,12,31,14,10,15,22,13,24,11,26,7,18,9,34,27,29,23,33,35
30020 DATA 17,7,31,9,19,10,29,13,33,6,22,2,23,4,24,12,35,18,27,14,34,32,36,28,26
30030 DATA 12,32,3,28,14,34,9,36,7,26,10,37,31,38,6,22,2,23,4,24,33,35,13,27,29
30035 '4 pieces
30040 DATA 33,29,34,26
30050 DATA 12,14,29,33
30060 DATA 26,34,27,35
30070 DATA 35,27,2,4
30080 DATA 34,26,35,27
30090 DATA 13,33,34,4
30100 DATA 1,5,4,2
30110 DATA 29,33,10,6
30120 DATA 2,4,35,27
30125 ' 9 pieces
30130 DATA 29,27,38,34,13,4,10,36,6
30140 DATA 29,33,39,3,13,26,36,10,6
30150 DATA 37,23,38,2,13,4,10,18,6
30160 DATA 4,3,2,6,13,10,27,39,35
30170 DATA 38,37,36,6,10,2,27,35,22
30175 '16 pieces
30180 DATA 34,26,37,29,35,27,39,6,40,41,13,33,22,24,36,3
30190 DATA 33,41,40,29,34,35,27,26,22,4,2,24,12,32,28,14
30200 DATA 37,29,33,38,10,4,2,6,34,27,35,26,22,28,32,24
30210 DATA 41,6,10,40,34,27,35,26,22,4,2,24,12,38,37,14