10 ' ********************************
20 ' * PERSEPHONE * 30 ' * (c) F.LEMAINQUE & MICROSTRAD * 40 ' ******************************** 50 MODE 1:INK 0,0:INK 1,6:INK 2,18:INK 3,20:BORDER 0:DEFINT a-z:GOTO 420 60 '*** MOUVEMENT CHENILLE *** 70 FOR att=1+2*n TO (200-dif*20):NEXT:po(x,y)=1 80 ON JOY(0)+1 GOTO 130,90,100,130,110,130,130,130,120 90 IF d<>2 THEN d=1:dx=0:dy=-1:GOTO 130 ELSE 130 100 IF d<>1 THEN d=2:dx=0:dy=1:GOTO 130 ELSE 130 110 IF d<>4 THEN d=3:dx=-1:dy=0:GOTO 130 ELSE 130 120 IF d<>3 THEN d=4:dx=1:dy=0 130 y=y+dy:x=x+dx 140 y$=CHR$(y)+MID$(y$,1,LEN(Y$)-1):x$=CHR$(x)+MID$(x$,1,LEN(x$)-1) 150 LOCATE ASC(MID$(x$,2,1)),ASC(MID$(y$,2,1)):PEN 3:PRINT CHR$(231); 160 LOCATE x,y:PRINT CHR$(244+d) 170 LOCATE ASC(RIGHT$(x$,1)),ASC(RIGHT$(y$,1)):PEN 0:PRINT " ";:PEN 3 180 po(ASC(RIGHT$(x$,1)),ASC(RIGHT$(y$,1)))=0 190 ON po(x,y)+1 GOTO 70,210,300 200 :'*** INDIGESTION ! *** 210 FOR i=LEN(x$) TO 2 STEP -1 220 LOCATE ASC(MID$(x$,i,1)),ASC(MID$(y$,i,1)):PEN 2:PRINT CHR$(231) 230 NEXT 240 LOCATE ASC(LEFT$(x$,1)),ASC(LEFT$(y$,1)):PRINT CHR$(225) 250 LOCATE 10,10:PRINT "INDIGESTION!!!";:GOSUB 1290 260 IF sco>hsc THEN hsc=sco 270 FOR i=1 TO 1000:NEXT 280 ERASE po:PEN 3:v=v-1:IF v THEN x$="":y$="":GOTO 1050 ELSE 370 290 '*** POMME CROQUEE *** 300 GOSUB 1320:y$=y$+RIGHT$(y$,1):x$=x$+RIGHT$(x$,1) 310 FOR i=1 TO 10:sco=sco+1:LOCATE 21,1:PRINT sco:NEXT 320 po(x,y)=0:IF sco>3000 AND bo=0 THEN v=v+1:bo=1 330 IF LEN(x$)<>13+5*ta THEN 70 340 ta=ta+1:FOR i=1 TO 10:sco=sco+100:LOCATE 21,1:PRINT sco:NEXT 350 GOSUB 1340:x$="":y$="":ERASE po:GOTO 1050 360 ' *** FIN DE LA PARTIE *** 370 GOSUB 1400:CLS:LOCATE 3,3:PRINT" VOUS AVEZ PERDU !!" 380 LOCATE 3,7:PRINT " VOTRE SCORE EST DE :";sco 390 LOCATE 3,10:PRINT" LE MEILLEUR ETAIT :";HSC 400 LOCATE 1,22:PRINT " APPUYER SUR LA BARRE D'ESPACE POUR UNE AUTRE PARTIE." 410 r$=INKEY$:IF r$=" " THEN 990 ELSE 410 420 ' ********************************* 430 ' * GENERIQUE * 440 ' ********************************* 450 GOSUB 880:DEG:FOR an=180 TO 119 STEP -2:ORIGIN 320,0 460 DRAW 100*COS(an),100*SIN(an),CINT(2*RND+1):NEXT 470 FOR a=120 TO 70 STEP -5:b$="*":LOCATE 9,6:PEN 1:PRINT b$ 480 FOR an=a TO a-4 STEP -1:ORIGIN 320,0 490 DRAW 100*COS(an),100*SIN(an),CINT(2*RND+1):NEXT 500 ON (25-a/5) GOSUB 510,530,550,570,590,610,630,650,670,690,710:NEXT:GOTO 810 510 a$="****":LOCATE 9,2:PEN 1:PRINT a$:LOCATE 9,3:PRINT b$ 520 LOCATE 9,4:PRINT b$:LOCATE 9,5:PRINT b$:LOCATE 10,6:PRINT a$:RETURN 530 a$="***":c$=" ":LOCATE 13,2:PEN 1:PRINT a$:LOCATE 15,4:PEN 2:PRINT c$ 540 LOCATE 13,6:PEN 1:PRINT a$:RETURN 550 a$="**":c$="PE":LOCATE 16,2:PRINT a$:LOCATE 16,4:PEN 2:PRINT c$:PEN 1 560 LOCATE 16,6:PRINT a$:RETURN 570 c$="RS":LOCATE 18,2:PRINT a$:PEN 1:LOCATE 18,4:PEN 2:PRINT c$:PEN 1 580 LOCATE 18,6:PRINT a$:RETURN 590 a$="*":c$="E":LOCATE 20,2:PRINT a$:PEN 1:LOCATE 20,4:PEN 2:PRINT c$:PEN 1 600 LOCATE 20,6:PRINT a$:RETURN 610 c$="P":LOCATE 21,2:PRINT a$:PEN 1:LOCATE 21,4:PEN 2:PRINT c$:PEN 1 620 LOCATE 21,6:PRINT a$:RETURN 630 a$="**":c$="HO":LOCATE 22,2:PEN 1:PRINT a$:LOCATE 22,4:PEN 2:PRINT c$ 640 LOCATE 22,6:PEN 1:PRINT a$:RETURN 650 c$="NE":LOCATE 24,2:PEN 1:PRINT a$:LOCATE 24,4:PEN 2:PRINT c$:PEN 1 660 LOCATE 24,6:PRINT a$:RETURN 670 a$="***":c$=" ":LOCATE 26,2:PEN 1:PRINT a$:LOCATE 26,4:PEN 2:PRINT c$ 680 LOCATE 26,6:PEN 1:PRINT a$:RETURN 690 a$="****":b$="*":c$="***":LOCATE 29,2:PEN 1:PRINT a$:LOCATE 32,3:PRINT b$ 700 LOCATE 32,4:PRINT b$:LOCATE 32,5:PRINT b$:LOCATE 29,6:PRINT c$:RETURN 710 LOCATE 32,6:PRINT b$:RETURN 720 PEN 3:LOCATE 10,11:PRINT STRING$(2,231);CHR$(224);" = Persephone":RETURN 730 PEN 2:LOCATE 12,13:PRINT CHR$(251);" = 10 Points":RETURN 740 PEN 1:LOCATE 11,15:PRINT CHR$(241);CHR$(242);:PEN 3:LOCATE 11,16 750 PRINT CHR$(243);CHR$(244);:PEN 1:PRINT" = Indigestion !!!":RETURN 760 PEN 3:LOCATE 12,18:PRINT CHR$(250);" = Tableau (1000 pts)":RETURN 770 PEN 1:LOCATE 1,24:PRINT"UNE PRODUCTION";:RETURN 780 RETURN 790 PAPER 1:PEN 0:LOCATE 15,25:PRINT CHR$(164);"AMSFAB 1986"; 800 MOVE -96,16:DRAWR 192,0,1:PEN 1:PAPER 0:RETURN 810 FOR an=69 TO 0 STEP -2:ORIGIN 320,0 820 DRAW 100*COS(an),100*SIN(an),CINT(2*RND+1) 830 ON 7-an/10 GOSUB 720,730,740,760,770,780,790 840 NEXT:GOSUB 1400:FOR an=1 TO 2000:NEXT:ORIGIN 0,0:GOTO 990 850 ' ******************************** 860 ' ******** INITIALISATION ******** 870 ' ******************************** 880 SYMBOL AFTER 240:SYMBOL 250,&18,&3C,&7E,&FF,&18,&3C,&3C,&18 890 SYMBOL 251,&40,&3C,&7E,&7E,&7E,&3C,&0 900 SYMBOL 241,&1,&7,&F,&1F,&3F,&6F,&3F,&7 910 SYMBOL 242,&40,&80,&F0,&FC,&FE,&FC,&F8,&90 920 SYMBOL 243,&7,&F,&1F,&1F,&1F,&7,&3 930 SYMBOL 244,&E0,&F0,&F8,&F8,&F8,&F8,&F0,&E0 940 SYMBOL 245,&3C,&66,&5A,&FF,&DB,&7E,&5A,&C3 950 SYMBOL 246,&C3,&5A,&7E,&DB,&FF,&5A,&66,&3C 960 SYMBOL 247,&7,&C,&3E,&5F,&FF,&F7,&8E,&7C 970 SYMBOL 248,&E0,&30,&7C,&F6,&FF,&F7,&71,&3E 980 RETURN 990 v=3:ta=1:sc=0 1000 LOCATE 27,24:PRINT "VITESSE (1-9)?" 1010 r$=INKEY$:IF r$>"9" OR r$<"1" THEN 1010 ELSE dif=VAL(r$) 1020 ' ******************************** 1030 ' ******** TRACE TERRAIN ******** 1040 ' ******************************** 1050 DIM po(40,25) 1060 CLS:LOCATE 1,2:PEN 3:PRINT STRING$(40,203); 1070 FOR i=3 TO 24:LOCATE 1,i:PRINT CHR$(203); 1080 LOCATE 40,i:PRINT CHR$(203);:po(1,i)=1:po(40,i)=1:NEXT 1090 LOCATE 1,25:PRINT STRING$(40,203); 1100 FOR i=0 TO 40:po(i,2)=1:po(i,25)=1:NEXT 1110 FOR i=1 TO 10+ta*2 1120 ca=36*RND+2:cb=19*RND+4:LOCATE ca,cb 1130 FOR j=0 TO 1:FOR h=0 TO 1:IF po(ca+j,cb+h) THEN 1120 1140 NEXT h,j:FOR j=0 TO 1:FOR h=0 TO 1:po(ca+j,cb+h)=1:NEXT h,j 1150 PEN 1:PRINT CHR$(241);CHR$(242);:LOCATE ca,cb+1:PEN 3 1160 PRINT CHR$(243);CHR$(244);:FOR p=1 TO 3 1170 PLOT (ca*16+4-12*RND),((25-cb)*16+3+6*RND),3:NEXT p,i 1180 FOR i=1 TO 10+5*ta 1190 cp=35*RND+2:co=20*RND+4:LOCATE cp,co:IF po(cp,co) THEN 1190 1200 po(cp,co)=2:PEN 2:PRINT CHR$(251);:NEXT 1210 x$="":y$="":FOR i=1 TO 3:x$=x$+CHR$(20+i):NEXT:y$=STRING$(3,3) 1220 LOCATE 5,1:FOR i=1 TO v:PEN 2:PRINT CHR$(224);:NEXT 1230 LOCATE 15,1:PRINT "SCORE=";sco 1240 LOCATE 32,1:FOR i=1 TO ta:PRINT CHR$(250);:NEXT 1250 n=0:d=3:dx=-1:dy=0:x=20:y=3:GOTO 70 1260 ' ******************************** 1270 ' * MUSIQUES ET SONS * 1280 ' ******************************** 1290 '*INDIGESTION* 1300 ENV 1,1,5,220,8,-1,10:ENT 1,100,-2,1,100,2,1,100,10,1 1310 SOUND 1,400,-1,5,1,1:WHILE SQ(1)>127:WEND:RETURN 1320 '* POMME * 1330 ENV 2,15,1,2:ENT 2,10,-5,1:SOUND 2,200,-1,0,2,2,1:RETURN 1340 '* NV TABLEAU * 1350 ENV 3,1,12,1,1,-3,2,1,0,1,1,0,1,9,-1,4:ENT 3,1,2,1,1,0,2,1,0,2,1,-2,1,1,0,4 1360 RESTORE 1370:FOR i=1 TO 31:READ a,b:SOUND 2,a,b*20,0,3,3:NEXT:RETURN 1370 DATA 319,1,379,1,478,1,478,1,478,1,426,1,379,1,358,1,319,1.5,319,.5,319,1.5 1380 DATA 379,.5,284,1,284,1,284,1.5,319,.5,284,1,253,1,239,1,213,1,190,1.5 1390 DATA 190,1,213,0.5,190,1,253,0.5,239,1,319,0.5,284,1,426,1,379,1,478,1.5 1400 DATA '* LETTRE A ELISE * 1410 ENV 4,1,10,1,1,-2,2,1,0,1,1,0,4,8,-1,6 1420 RESTORE 1460:FOR i=1 TO 88:READ a,b 1430 IF a>60 THEN SOUND 4,a,b*20,0,4:SOUND 2,a*2,b*20,1 ELSE IF a<51 THEN SOUND 1,a,b*20,0,4:SOUND 2,a*2,b*20,1 ELSE SOUND 5,a,20*b,0,4:SOUND 2,a*2,b*20,1 1440 IF INKEY(9)=0 THEN RETURN: :' appuyez sur <COPY> pour abreger la musique 1450 WHILE SQ(2)>127:WEND:NEXT:RETURN 1460 DATA 47,1,50,1,47,1,50,1,47,1,50,1,47,1,63,1,53,1,60,1,71,2,71,1,95,1,75,1 1470 DATA 63,2,63,1,60,1,63,1,71,2,47,1,50,1,47,1,50,1,47,1,50,1,47,1,63,1,53,1 1480 DATA 60,1,71,2,71,1,95,1,75,1,63,2,63,1,60,1,63,1,71,2,71,1,71,1,63,1,60,1 1490 DATA 53,1,47,1,47,2,47,1,60,1,45,1,47,1,53,2,53,1,63,1,47,1,53,1,60,2,60,1 1500 DATA 71,1,53,1,60,1,63,2,47,1,50,1,47,1,50,1,47,1,50,1,47,1,25,1,24,1,25,1 1510 DATA 24,1,25,1,24,1,63,1,53,1,60,1,71,2,71,1,95,1,75,1,63,2,63,1,60,1,63,1 1520 DATA 71,2,60,2,47,2,36,3 1530 END |