10 REM ****************************
20 REM * * 30 REM * G R A P H O F R A N C E * 40 REM * * 50 REM * par * 60 REM * * 70 REM * Patrick LEFEVRE * 80 REM * * 90 REM * Copyright 1986 * 100 REM * * 110 REM **************************** 120 ' 130 REM **************** 140 REM initialisation 150 REM **************** 160 ' 170 SPEED KEY 10,0.5 180 CLEAR 190 'SYMBOL AFTER &F0 200 SYMBOL &FF,&3C,&66,&C3,&99,&99,&C3,&66,&3C 210 nq=10:' Nb de quesions posees. Peut-etre modifie jusqu'a 87 220 DIM nv$(87),xv(87),yv(87),ess(nq) 230 INK 2,16,11 240 PAPER 0:BORDER 4 250 PEN 1 260 ' 270 REM ************** 280 REM presentation 290 REM ************** 300 ' 310 GOSUB 2350 320 CALL &A000 330 LOCATE 17,4:PRINT"presente" 340 FOR I=0 TO 60:PLOT 260+I,210-j,3 350 DRAWR i-(1*i),60+(2*j):j=j+0.6 360 NEXT 370 j=0 380 FOR I=60 TO 0 STEP -1:PLOT 320+I,210-j 390 DRAWR i-(1*i),60+(2*j):j=j+0.6 400 NEXT 410 PEN 2:LOCATE 15,17:PRINT"GRAPHOFRANCE" 420 PEN 1:LOCATE 20,19:PRINT"OU" 430 LOCATE 5,21:PRINT"comment apprendre la geographie" 440 LOCATE 15,22:PRINT"en s'amusant." 450 GOSUB 2560 460 LOCATE 8,25:PAPER 1:PEN 3:PRINT CHR$(24)"J"CHR$(24)"=>Jeu "CHR$(24)"I"CHR$(24)"=>Instructions" 470 PAPER 0:PEN 1 480 x$=UPPER$(INKEY$):IF x$="" THEN 480 490 IF x$="J" THEN GOSUB 810 500 IF x$="I" THEN GOSUB 540:GOTO 810 510 GOTO 480 520 ' 530 REM *************** 540 REM INSTRUCTIONS 550 REM *************** 560 ' 570 MODE 2 580 LOCATE 34,5:PRINT"INSTRUCTIONS" 590 LOCATE 34,6:PRINT"============" 600 LOCATE 1,10:PRINT" Ce jeu consiste a retrouver la position geographique d'une ville sur la carte" 610 PRINT"de FRANCE. Pour cela il suffit de deplacer un point a l'aide des fleches du" 620 PRINT"curseur ou du joystick et de le positionner sur l'endroit presume. Confirmez" 630 PRINT"votre position en appuyant sur 'COPY' ou sur 'FEU'." 640 PRINT"Vous avez droit a un essai par question." 650 PRINT"Si vous tombez sur la ville ou en etes tres proche vous aurez 20/20." 660 PRINT"Plus vous tomberez loin moins vous marquerez de points." 670 PRINT"Vous serez questionne sur";nq;"villes. Votre moyenne s'affichera au fur et a" 680 PRINT"mesure de vos reponses." 690 PRINT"Et maintenant regardez bien la carte. Essayez d'identifier le maximum de villes" 700 PRINT"Lorsque vous en aurez assez appuyez sur une touche et BONNE CHANCE." 710 LOCATE 28,24:PRINT"< Appuyer sur une touche >" 720 CALL &BB18 730 MODE 2 740 orx=140:ory=10 750 GOSUB 1670 760 enc=1:GOSUB 1930 770 CALL &BB18 780 RETURN 790 ' 800 REM ***** 810 REM jeu 820 REM ***** 830 ' 840 orx=270:ory=10:ques=1:nota=0 850 enc=0:GOSUB 1930:MODE 2 860 ' dessin des fenetres 870 ORIGIN 0,0 880 PLOT 0,0,1:DRAW 0,48 890 PLOT 0,53:DRAW 0,268 900 PLOT 0,272:DRAW 0,350 910 PLOT 0,355:DRAW 0,399 920 PLOT 252,0:DRAW 252,48 930 PLOT 252,53:DRAW 252,268 940 PLOT 252,272:DRAW 252,350 950 PLOT 252,355:DRAW 252,399 960 PLOT 257,0:DRAW 257,399 970 PLOT 639,0:DRAW 639,399 980 PLOT 0,0:DRAW 252,0 990 PLOT 0,48:DRAW 252,48 1000 PLOT 0,53:DRAW 252,53 1010 PLOT 257,0:DRAW 639,0 1020 PLOT 0,399:DRAW 252,399 1030 PLOT 257,399:DRAW 639,399 1040 PLOT 0,355:DRAW 252,355 1050 PLOT 0,350:DRAW 252,350 1060 PLOT 0,272:DRAW 252,272 1070 PLOT 0,268:DRAW 252,268 1080 GOSUB 1670 1090 ' presentation 1100 WINDOW #1,34,79,2,24:WINDOW #0,2,31,2,24:WINDOW #2,2,31,10,21 1110 LOCATE 8,1:PRINT CHR$(24)" GRAPHOFRANCE "CHR$(24) 1120 LOCATE 5,4:PRINT "Pouvez vous situer...." 1130 LOCATE 4,23:PRINT CHR$(24)" Q U E S T I O N 1 "CHR$(24) 1140 ' tirage au sort ville 1150 RANDOMIZE TIME:sort=INT(RND*87) 1160 ess(ques)=sort 1170 FOR i=1 TO ques-1 1180 IF sort=ess(i) THEN 1150 1190 NEXT 1200 ' pose question 1210 CLS #2 1220 LOCATE 1,6:PRINT STRING$(27,32) 1230 LOCATE INT(27-LEN(nv$(sort)))/2,6:PRINT nv$(sort);" ?" 1240 GOSUB 2170 1250 PEN #1,0:PRINT #1,REMAIN(1) 1260 ' traitement reponse 1270 ORIGIN 0+orx,0+ory 1280 xt=xv(sort)*3:yt=yv(sort)*3 1290 dis=SQR((xt-xcur)^2+(yt-ycur)^2)*2.73 1300 LOCATE #2,1,3 1310 IF dis<6 THEN PRINT#2," EXCELLENT":GOTO 1440 1320 IF dis<11 THEN PRINT#2," TRES BIEN":GOTO 1440 1330 IF dis<21 THEN PRINT #2," BRAVO":GOTO 1440 1340 IF dis<30 THEN PRINT #2," BIEN":GOTO 1440 1350 IF dis<40 THEN PRINT #2," PAS MAL":GOTO 1440 1360 IF dis<50 THEN PRINT #2," JUSTE BON":GOTO 1440 1370 IF dis<60 THEN PRINT #2,"UN PEU DE CONCENTRATION QUOI !":GOTO 1440 1380 IF dis<80 THEN PRINT #2," CE POURRAIT ETRE MIEUX":GOTO 1440 1390 IF dis<120 THEN PRINT #2," PLUTOT MOYEN NON !":GOTO 1440 1400 IF dis<160 THEN PRINT #2," VOUS DEVEZ CONFONDRE":GOTO 1440 1410 IF dis<240 THEN PRINT #2,"NE REPONDEZ PAS N'IMPORTE QUOI":GOTO 1440 1420 IF dis<320 THEN PRINT #2,"SI VOUS VOUS MOQUEZ DE MOI J'ARRETE TOUT":GOTO 1440 1430 PRINT#2,"VOUS ETES SUR QUE C'EST EN FRANCE" 1440 LOCATE #2,7-LEN(STR$(INT(dis))),6:PRINT#2,"Vous etes a";INT(dis);"kilometres" 1450 IF dis>400 THEN dis=400 1460 note=CINT((400-dis)/20) 1470 LOCATE #2,8,8:PRINT #2,"Votre note ";:PRINT #2,USING"##";note;:PRINT #2,"/20" 1480 nota=nota+note:moy=nota/ques 1490 LOCATE 6,1:PRINT "Votre moyenne ";:PRINT USING"##";moy;:PRINT "/20" 1500 ques=ques+1 1510 PLOT xt-1,yt:DRAW xt+1,yt:PLOT xt,yt-2:DRAW xt,yt+2 1520 LOCATE #2,5,12:PRINT #2,"< Appuyer sur espace >" 1530 IF INKEY(47)=0 THEN 1550 1540 GOTO 1530 1550 LOCATE 1,6:PRINT STRING$(27,32):CLS #2 1560 IF ques<nq+1 THEN LOCATE 24,23:PRINT CHR$(24);USING"##";ques;:PRINT CHR$(24);:CLS #1:GOSUB 1670:GOTO 1150 1570 LOCATE 1,4:PRINT STRING$(27,32) 1580 LOCATE 1,6:PRINT STRING$(27,32) 1590 LOCATE 10,4:PRINT"C'est fini" 1600 LOCATE 7,6:PRINT"Une autre (O/N) ?" 1610 rep$=UPPER$(INKEY$):IF rep$="" THEN 1610 1620 IF rep$="O" THEN GOTO 820 1630 IF rep$="N" THEN INK 1,24:PEN 1:MODE 2:END 1640 GOTO 1610 1650 ' 1660 REM ******************* 1670 REM trace de la carte 1680 REM ******************* 1690 ' 1700 ' pourtour 1710 ' 1720 RESTORE 2720:z=0 1730 READ a,b 1740 IF a=&FF THEN 1800 1750 a=a*3:b=b*3 1760 IF z=0 THEN ORIGIN a+orx,b+ory:z=1:GOTO 1730 1770 DRAWR a,b 1780 GOTO 1730 1790 ' 1800 ' fleuves 1810 ' 1820 RESTORE 2940:z=0 1830 READ a,b 1840 IF a=&FF AND b=&FF THEN 1900 1850 IF a=&FF THEN z=0:GOTO 1830 1860 a=a*3:b=b*3 1870 IF z=0 THEN MOVE a,b:z=1: GOTO 1830 1880 DRAWR a,b 1890 GOTO 1830 1900 RETURN 1910 ' 1920 REM ******************** 1930 REM dessins des villes 1940 REM ******************** 1950 ' 1960 IF enc=1 THEN 2050 1970 MODE 2:LOCATE 24,12:PRINT"QUELQUES SECONDES DE PATIENCE...." 1980 TAG 1990 MOVE 0,64:DRAW 639,64 2000 FOR i=0 TO 650 STEP 2 2010 MOVE i,80 2020 PRINT " "CHR$(250); 2030 NEXT 2040 TAGOFF 2050 ORIGIN 0+orx,0+ory 2060 RESTORE 3060 2070 FOR i=0 TO 86 2080 READ xv(i),yv(i),nv$(i) 2090 x=xv(i)*3:y=yv(i)*3 2100 IF enc=0 THEN 2130 2110 PLOT x-1,y,enc:DRAW x+1,y 2120 PLOT x,y-2:DRAW x,y+2 2130 NEXT 2140 RETURN 2150 ' 2160 REM ********************** 2170 REM deplacement du point 2180 REM ********************** 2190 ' 2200 EVERY 50,1 GOSUB 2520 2210 EVERY 50,1 GOSUB 2530 2220 ORIGIN 0+orx,0+ory:xcur=200:ycur=200 2230 IF INKEY(8)=0 OR INKEY(74)=0 THEN xcur=xcur-1 2240 IF INKEY(1)=0 OR INKEY(75)=0 THEN xcur=xcur+1 2250 IF INKEY(2)=0 OR INKEY(73)=0 THEN ycur=ycur-1 2260 IF INKEY(0)=0 OR INKEY(72)=0 THEN ycur=ycur+1 2270 IF INKEY(9)=0 OR INKEY(76)=0 THEN 2320 2280 PLOT xcur-2,ycur-1,0:DRAW xcur+2,ycur-1 2290 PLOT xcur+2,ycur+1,0:DRAW xcur-2,ycur+1 2300 PLOT xcur-1,ycur,1:DRAW xcur+1,ycur 2310 GOTO 2230 2320 PRINT CHR$(7):RETURN 2330 ' 2340 REM ****************** 2350 REM ecriture message 2360 REM ****************** 2370 ' 2380 RESTORE 3290 2390 FOR i=&A000 TO &A033 2400 READ a$ 2410 a=VAL("&"+a$) 2420 tot=tot+a 2430 POKE i,a 2440 NEXT i 2450 IF tot<>&1178 THEN MODE 2:LOCATE 1,10:PRINT "Verifiez les DATAs de la routine L.M. Il y a une erreur.":PRINT:LIST 3250-3350 2460 RETURN 2470 ' 2480 REM ********* 2490 REM tic-tac 2500 REM ********* 2510 ' 2520 SOUND 1,500,2,15:RETURN 2530 SOUND 1,2000,2,15:RETURN 2540 ' 2550 REM ********* 2560 REM musique 2570 REM ********* 2580 ' 2590 RESTORE 3410 2600 READ r,s 2610 IF r=-1 THEN RETURN 2620 SOUND 1,r,s*0.5 2630 SOUND 2,0.5*r,s*0.5 2640 SOUND 4,0.25*r,s*0.5 2650 GOTO 2600 2660 ' 2670 REM *********************** 2680 REM DATAs pourtour FRANCE 2690 REM *********************** 2700 ' 2710 ' PRADES-MONACO 2720 DATA 66,0,2,0,3,1,1.5,-0.5,0,2,-1,1.5,1,1.5,-1,2,1,2,1,1.5,2,1.5,1,0,4,2.5,2,1.5,1,-1,4,0,1.5,-1.5,3,0,1,.5,1,-0.5,2,0,0,-1,2,-1,0,1,1.5,-1,1.5,0,0.5,1,1,0,0,-1,1.5,1,0,1,2.5,1.5,1,2,0,1,2,2.5,1.5,0,1.5,2,0,1,1,0,0,0.5,2,1 2730 ' MONACO-BESANCON 2740 DATA 0,2,-6,-0.5,-1,1.5,-1,1,0,3,0.5,1,0.5,0.5,-1,2,-2,0.5,-0.5,3,1,2,1.5,0.5,0.5,-0.5,1,1,0,1.5,-1,2,-0.5,0,-0.5,2,-1.5,0,1.5,3,0,1,-1.5,0.5,-0.5,4.5,-2,0.5,-3,-1.5,0,-1,-1,-1,-1,-0.5,-1,0.5,0,1,1.5,0.5,0,3.5,3,3,0,2,1,0,2.5,2,1.5,2 2750 ' BESANCON-VERVINS 2760 DATA 0,1,-0.5,1,2,2,1,-1,1,1,1.5,0.5,1,1.5,-1,2,0.5,1,-0.5,2,0.5,4.5,1,1.5,0,1.5,2,2.5,2,3,0,3,-3,-1,-1,0.5,-2,-0.5,-2,1,-1,-1,-1,0,-2.5,2,-1.5,-1,-2,2,0,1.5,-1,0.5,-4,0,-1,1,-4,-1,-4.5,3,0,1,0.5,0.5,-2,1.5,1,2,-0.5,0.5,-2.5,-2.5,-4,0 2770 ' VERVINS-LE HAVRE 2780 DATA 0.5,1.5,-0.5,0.5,0,1,-1,1.5,-0.5,-0.5,-1,0.5,-1,-0.5,0,2,-2,1.5,-1,-0.5,-1,1.5,0,2.5,-1,0,-1,-1,-1.5,0,-0.5,1,-1,0,0.5,1.5,-2,2,-5,-1.5,-3,-1.5,-0.5,-7.5,0.5,-1,-1.5,-0.5,-1.5,-2.5,-5,-1.5,-5,-2.5,-1,-2,0,-0.5,1.5,0,0.5,-0.5 2790 ' LE HAVRE-MORLAIX 2800 DATA -4.5,-3,-2,0,-2,0.5,-1,-0.5,-3,1,-1,-1,-1,2,-0.5,0.5,0.5,0.5,0,1,-1,1,-2,-0.5,-2,0.5,-1,0,1,-1,0,-2,2,-4,0,-6.5,1.5,-1.5,-2.5,0,-1,-0.5,-1,1,-1,0,-1.5,-1,-0.5,1,-4,-2,-3,5,-2,0,-1.5,-0.5,-1,0.5,-0.5,-0.5,0,-1.5,-0.5,0.5,-0.5,0.5,-1.5,-0.5 2810 ' MORLAIX-LORIENT 2820 DATA -0.5,-0.5,-1,1,-1.5,0,-0.5,-0.5,-0.5,0.5,-4,-2,0,-2,1,-0.5,2.5,0.5,1,-0.5,1,-1,-3,0,0,0.5,0,-0.5,-0.5,0,0.5,0,0,-1.5,0.5,0.5,1.5,-0.5,-0.5,-0.5,-3.5,0,0,-0.5,2,-0.5,1,-2,-0.5,-1,1.5,0,0.5,1,0.5,0,1,-0.5,1,0.5,0.5,-1,3.5,-1,3,-2,1,-2 2830 ' LORIENT-ROCHEFORT 2840 DATA 0.5,1.5,1.5,0.5,0.5,-0.5,-0.5,-0.5,-0.5,0,0.5,-0.5,2.5,0,1,-0.5,-0.5,-0.5,0,-2,2,-0.5,1,0.5,3,-1,-1.5,0.5,-1.5,-1.5,1.5,-0.5,0,-0.5,-1,-2,3,-3,0,-2,0.5,-0.5,2,-1,0,-0.5,2,0,1,-1,0,-2,1,-0.5,0,-1.5,-0.5,0,0,-1,-0.5,-0.5,0,-0.75,-1,0.25,0,-1.5 2850 ' ROCHEFORT-ARGELES 2860 DATA 2,0,3,-4,1,-6,-1,4,-1,2,-1.5,1,-0.5,1,-1,-1,0,-2,-1,-2,0,-5,-0.5,-2,1.5,1,1,-1,-1,-1,-0.5,0.5,-1,-0.5,-0.5,-1,-1,-5,-0.5,-4,-1,-4,-1,-2,-1,-1,-1.5,-0.5,1.5,-2,3,0,0,-1.5,-1,-0.5,1,-1,1,0.5,0.5,-0.5,2,0,1,-1,2,0,0,-1,2,-1,1,0.5,2,-0.5 2870 ' ARGELES-PRADES 2880 DATA 0,-1,1,0,2,-0.5,1.5,0.5,0.5,-0.5,4,0,0,2,2,-0.5,0,-0.5,5,-1,0,-1,3,0,2,-2,0,-0.5,2,0,2,0.5,2,-1.5,&ff 2890 ' 2900 REM *************** 2910 REM DATAs fleuves 2920 REM *************** 2930 ' SEINE 2940 DATA -19.5,101.5,1,0,1,0.5,0,-0.5,1,1,0,0.5,0.5,0,0,-2.5,1,1,1,0,0,-1,1.5,-1.5,0,0.5,0.5,0,0,-1,1,0,1,0.5,-0.5,-1,3,-2.5,1,0.5,0.5,-0.5,2,0.5,0,-2,1,1,-1,-2,2,0.33,0,-3,2.5,-1,0,-1,1,0,0,0.5,3,0,5,1.5,2,0,0.5,-2,4,-4,3,-7,0.5,-4,&ff,0 2950 ' LOIRE 2960 DATA -41,69,4,-1.5,4,2,5,0,2,0.5,2,-2.3,1.5,-0.3,3,0.3,2,1,2,0,6,2,5,4,8,-5,0,-2,1,-2,0,-3.5,2,-0.5,2.5,-1,1.5,-2,0.5,-1,2,0,2,-6,-1,-1,0,-2.5,2,-3,0,-4,-1,-1,-1,0,0,-4,2,-1,1,1,&ff,0 2970 ' GARONNE 2980 DATA -29.5,37.5,0.5,-2,1,-1,1,-2,2,0,1,-2,1,0,1,-2,2,-1,1,-1,4,-1,3,-6,0,-3,-2,-3,-3,-1,-3,-1,1,-2.5,0,-1,1,-0.5,&ff,0 2990 ' RHONE 3000 DATA 32,55.5,-1.3,-1.5,0,-5,-2,-2,-2,2.5,-2.5,-1,-0.5,-4,0,-4,1,-4,-1.5,-10,0.5,-1.5,1,-.5,0,-2,-2,-0.5,0,-3,3,-4,-2,0,1,2,&FF,&FF 3010 ' 3020 REM ************** 3030 REM DATAs villes 3040 REM ************** 3050 ' 3060 DATA 65,93,PARIS,41,97.5,CAEN,92.5,54,BOURG-EN-BRESSE,116,92,STRASBOURG,36,37,BORDEAUX 3070 DATA 96,15.5,MARSEILLE,80,17.5,MONPELLIER,18,86,SAINT-BRIEUC,88,56,MACON,32.5,95.5,SAINT-LO 3080 DATA 25,70,NANTES,96,62,LONS-LE-SAUNIER,32.5,54,LA ROCHELLE,99,70,BESANCON,90,70,DIJON 3090 DATA 36,22,MONT-DE-MARSAN,37,14,PAU,43,12.5,TARBES,47,18,AUCH,58,7.5,FOIX 3100 DATA 66,11.5,CARCASSONNE,70.5,4,PERPIGNAN,67.5,112.5,ARRAS,75.5,104,LAON,71,118.5,LILLE 3110 DATA 53,102,ROUEN,61.5,101,BEAUVAIS,53.5,94.5,EVREUX,44,48.5,ANGOULEME,82.5,94.5,CHALON SUR MARNE 3120 DATA 100,97,METZ,99.5,91.5,NANCY,111,84,COLMAR,5,81,QUIMPER,28,81.5,RENNES 3130 DATA 36,81,LAVAL,45.5,80,LE MANS,44,86,ALENCON,68,87.5,MELUN,38,72.5,ANGERS 3140 DATA 48.5,68,TOURS,100,76.5,VESOUL,56.5,86,CHARTRES,90.5,91.5,BAR-LE-DUC,17,76,VANNES 3150 DATA 76.5,76.5,AUXERRE,90.5,82,CHAUMONT,112,22.5,NICE,38,57,NIORT,45.5,60,POITIERS 3160 DATA 29,60,LA ROCHE SUR YON,65,63,BOURGES,72,62.5,NEVERS,73.5,57,MOULINS,58.5,59.5,CHATEAUROUX 3170 DATA 61,76,ORLEANS,55,71.5,BLOIS,46.5,28,AGEN,56,29.5,CAHORS,64,21.5,ALBI 3180 DATA 68,28,RODEZ,66,37,AURILLAC,59.5,41,TULLE,54,49.5,LIMOGES,49,40,PERIGUEUX 3190 DATA 71.5,46.5,CLERMONT-FERRAND,84,42,SAINT-ETIENNE,89,48,LYON,101,50,ANNECY,99.5,46,CHAMBERY 3200 DATA 98,40.5,GRENOBLE,102,31,GAP,104,26,DIGNE,86,21,NIMES,91,22.5,AVIGNON 3210 DATA 77,31,MENDE,80,38,LE PUY,87,34,PRIVAS,92,36,VALENCE,102,14,TOULON 3220 DATA 55,18.5,TOULOUSE,86,105,CHARLEVILLE-MEZIERES,63,107,AMIENS,60,53,GUERET,80,86,TROYES 3230 DATA 107,76,BELFORT,102,84,EPINAL 3240 ' 3250 REM ************************* 3260 REM DATAs pour routine L.M. 3270 REM ************************* 3280 ' 3290 DATA 3E,01,CD,0E,BC,CD,14,BC 3300 DATA 21,15,A0,06,1F,7E,CD,5A 3310 DATA BB,23,10,F9,C9,20,20,20 3320 DATA 20,20,20,20,20,20,FF,20 3330 DATA 20,50,61,74,72,69,63,6B 3340 DATA 20,20,4C,45,46,45,56,52 3350 DATA 45,20,20,FF 3360 ' 3370 REM *************** 3380 REM DATAs musique 3390 REM *************** 3400 ' 3410 DATA 478,050,379,050,358,050,319,200,000,005,319,050 3420 DATA 478,050,379,050,358,050,319,200,000,005,319,100 3430 DATA 478,050,379,050,358,050,319,100,379,100,478,100 3440 DATA 379,100,426,200,000,005,426,050,379,050,000,005 3450 DATA 379,050,426,050,478,150,000,005,478,050,379,100 3460 DATA 319,100,000,005,319,050,358,150,000,005,358,100 3470 DATA 379,050,358,050,319,100,379,100,478,100,426,100 3480 DATA 478,200,000,005,478,050,000,005,000,005,-01,001 |