Hebdogiciel n°146 à n°149

100 !
110 !
120 !
130 ! Tir au pigeon
140 ! Auteur RENE DEGENNE
150 ! version 1.1 du 01 mars 1986
160 !
170 !
180 CLS "BCC":CALL COLOR("0BC")
190 FEU=0:TOUCHE=0:PASS=0
200 !
210 ! tir au pigeon
220 CALL INITPLAY:CALL LINOF
230 CLS "BRR":CALL JAUNE
240 CALL DBLPRT("T I R   A U",9,10)
250 CALL DBLPRT("P I G E O N",9,14)
260 CALL COUCOU
270 PAUSE I
280 CALL BLEU
290 CALL TOUCHE
300 GOSUB 2540! regles
310 !
320 !
330 !
340 CLS "BCC":CALL COLOR("0BC")
350 FEU=0:TOUCHE=0:PASS=0
360 !
370 ON NI GOTO 380,390,400
380 NI=.4:GOTO 410
390 NI=.1:GOTO 410
400 !
410 CLS:CALL COLOR("1RC")
420 ! definition oiseau
430 CALL CHAR(33,"01020404060607070303")
440 CALL CHAR(34,"000000081C3EF8E0C0C0")
450 CALL CHAR(35,"C0E070180C0300000000")
460 CALL CHAR(36,"172C5000000000000000")
470 ! definition fusil
480 CALL CHAR(40,"0000FFFFFFC995000000")
490 CALL CHAR(41,"0000FF00FF0000000000")
500 ! debut sequence jeu
510 ! dessin fusil et pigeon
520 FOR I=1 TO NVOL
530 LT=INTRND(16)
540 IF LT<6 THEN 530
550 LOCATE (LT,2):PRINT CHR$(40)
560 LOCATE (LT,3):PRINT CHR$(41)
570 PASS=PASS+1
580 GOSUB 1650
590 FLAGT=0
600 CARTOUCHE=0
610 L=INTRND(10):C=INTRND(39)
620 IF C<25 THEN 610
630 !
640 CALL COLOR("1bC")
650 LOCATE (L,C)
660 PRINT CHR$(33)
670 LOCATE (L,C+1)
680 PRINT CHR$(34)
690 LOCATE (L+1,C+1)
700 PRINT CHR$(35)
710 LOCATE (L+1,C)
720 PRINT CHR$(36)
730 CALL KEY1(V1,V2)
740 !
750 IF V2<>0 THEN GOSUB 980
760 IF FLAGT=1 THEN 940
770 !
780 ! mouvement oiseau
790 IF NI=3 THEN 810
800 PAUSE NI
810 CALL COLOR("0bC")
820 LOCATE (L,C):PRINT CHR$(32)
830 LOCATE (L,C+1):PRINT CHR$(32)
840 LOCATE (L+1,C+1):PRINT CHR$(32)
850 LOCATE (L+1,C):PRINT CHR$(32)
860 C=C-1:L=L+.5
870 CALL COLOR("1BC")
880 IF C<15 OR L>15 THEN 930
890 !
900 !
910 GOTO 640
920 !
930 !
940 CALL COLOR("0BC")
950 LOCATE (LT,2):PRINT CHR$(32):LOCATE (LT,3):PRINT CHR$(32)
960 CALL COLOR("1BC")
970 NEXT I:GOTO 1710!resultat final
980 ! mouvement fusil
990 !
1000 IF V1=32 THEN 1230
1010 CALL COLOR("0BC")
1020 IF V1=128 THEN 1070
1030 !
1040 IF V1=130 THEN 1150
1050 GOTO 1230
1060 !
1070 ! vers le haut
1080 LOCATE (LT,2):PRINT CHR$(32)
1090 LOCATE (LT,3):PRINT CHR$(32)
1100 LT=LT-1:CALL COLOR("1RC"):IF LT<2 THEN LT=2
1110 LOCATE (LT,2):PRINT CHR$(40)
1120 LOCATE (LT,3):PRINT CHR$(41)
1130 GOTO 1230
1140 !
1150 ! vers le bas
1160 LOCATE (LT,2):PRINT CHR$(32)
1170 LOCATE (LT,3):PRINT CHR$(32)
1180 LT=LT+1:CALL COLOR("1RC"):IF LT>20 THEN LT=20
1190 LOCATE (LT,2):PRINT CHR$(40)
1200 LOCATE (LT,3):PRINT CHR$(41)
1210 GOTO 1230
1220 !
1230 ! f e u
1240 IF V1<>32 THEN RETURN
1250 !
1260 IF CARTOUCHE=2 THEN RETURN
1270 CALL EXPLOSION
1280 FEU=FEU+1
1290 GOSUB 1650
1300 CALL COLOR("0RC")
1310 FOR CB=5 TO C:LOCATE (LT,CB)
1320 PRINT CHR$(95)
1330 LOCATE (LT,CB-1):PRINT CHR$(32)
1340 LOCATE (LT,CB):PRINT CHR$(32):NEXT CB
1350 CALL COLOR("1BC")
1360 PAUSE .1
1370 IF LT=L OR LT=L+.5 THEN 1440!touche
1380 CALL COUCOU
1390 CARTOUCHE=CARTOUCHE+1
1400 CALL KEY1(V1,V2)
1410 !
1420 IF V2=0 THEN RETURN
1430 GOTO 980
1440 ! toucher
1450 FLAGT=1
1460 TOUCHE=TOUCHE+1
1470 GOSUB 1650
1480 FOR LC=L+1 TO 20
1490 LOCATE (LC,C):PRINT CHR$(33)
1500 LOCATE (LC,C+1):PRINT CHR$(34)
1510 IF CARTOUCHE=2 THEN RETURN
1520 LOCATE (LC+1,C):PRINT CHR$(36)
1530 !
1540 LOCATE (LC-1,C):PRINT CHR$(32)
1550 LOCATE (LC-1,C+1):PRINT CHR$(32)
1560 LOCATE (LC,C+1):PRINT CHR$(32)
1570 LOCATE (LC,C):PRINT CHR$(32)
1580 CALL COLOR("1BC")
1590 CALL LASER
1600 NEXT LC
1610 LOCATE (21,1):PRINT
1620 RETURN
1630 I=I+1:RETURN
1640 !
1650 ! affichage continu
1660 !
1670 CALL COLOR("0MG")
1680 LOCATE (22,1):PRINT "PASSAGE=";I;"TIR=";FEU;"       TUE=";TOUCHE
1690 CALL COLOR("1BC")
1700 RETURN
1710 ! resultat final
1720 CLS "BGM":CALL COLOR("0MG")
1730 CALL DBLPRT("RESULTAT",12,8)
1740 PRINT:PRINT
1750 !
1760 PRINT TAB(11);PASS;" PASSAGES"
1770 PRINT
1780 PRINT TAB(11);FEU;" COUPS DE FEU"
1790 PRINT
1800 PRINT TAB(11);TOUCHE;" ABATTU(S)"
1810 !
1820 CALL TOUCHE
1830 LOCATE (22,1):PRINT
1840 CALL COLOR("0bG")
1850 PRINT "[1] AUTRE PARTIE"
1860 PRINT "[2] CHANGER NIVEAU"
1870 CALL REPONSE(R)
1880 IF R<1 OR R>2 THEN 1870
1890 IF R=2 THEN GOSUB 2540
1900 NI=NNI:NVOL=NNVOL
1910 GOTO 340
1920 ! s/prg regles du jeu
1930 CLS "BGB":CALL COLOR("0MG")
1940 CALL DBLPRT("REGLES DU JEU",7,2)
1950 PRINT:PRINT:PAUSE 1
1960 PRINT "CE JEU NE NECESSITE QUE L'UTILISATION DU SEUL JOYSTYCK JAUNE"
1970 PRINT:PAUSE 1
1980 PRINT "EN UTILISANT :"
1990 PRINT "LA MANETTE-->MONTER OU BAISSER LE FUSIL"
2000 PRINT "LES BOUTONS DE TIR-->FEU"
2010 PRINT "LES CHIFFRES-->REPONDRE AU CHOIX"
2020 PRINT:PRINT:PRINT:PAUSE 2
2030 PRINT "SANS MANETTE, VOUS POUVEZ UTILISER      LE CLAVIER"
2040 PRINT:PAUSE 1
2050 PRINT "FLECHES HAUT ET BAS-->BOUGENT LE FUSIL"
2060 PRINT "BARRE ESPACE-->FEU"
2070 CALL BLEU:CALL TOUCHE
2080 CLS
2090 CALL DBLPRT("REGLES DU JEU",7,2)
2100 CALL COLOR("0bG"):PRINT
2110 PRINT "L'OISEAU SE DEPLACE DE DROITE A GAUCHE  EN PERDANT DE L'ALTITUDE"
2120 PRINT:PAUSE 1
2130 PRINT "SON POINT DE DEPART VARIE A CHAQUE      PASSAGE"
2140 PRINT:PAUSE 1
2150 PRINT "VOTRE FUSIL SE SITUE SUR LA GAUCHE DE   L'ECRAN"
2160 PRINT:PAUSE 1
2170 PRINT "VOUS POUVEZ LE FAIRE MONTER OU DESCENDRE ";
2180 PRINT "AFIN DE VISER LE PIGEON"
2190 PRINT:PAUSE 1
2200 PRINT "VOUS AVEZ DROIT A DEUX CARTOUCHES POUR  CHAQUE PIGEON"
2210 PRINT:PAUSE 1:CALL BLEU
2220 CALL TOUCHE
2230 ! choix niveau jeu
2240 CLS "BYM":CALL COLOR("0MY")
2250 !
2260 CALL DBLPRT("REGLES DU JEU",7,2)
2270 !
2280 PRINT:PRINT
2290 PRINT "VEUILLEZ FAIRE VOTRE CHOIX"
2300 PRINT:CALL COLOR("0bY")
2310 PRINT "COMBIEN VOULEZ VOUS DE PASSAGES ?       *1 a 9* "
2320 CALL REPONSE(R)
2330 CALL TOC:LOCATE (12,35):PRINT "[";R;"]"
2340 IF R<1 THEN 2320
2350 NVOL=R:NNVOL=R
2360 LOCATE (15,1)
2370 PAUSE 1
2380 PRINT "NIVEAU DE DIFFICULTE ?"
2390 PRINT
2400 PRINT "[1]LENT      [2]MOYEN      [3]RAPIDE"
2410 !
2420 CALL REPONSE(R)
2430 CALL TOC:LOCATE (20,35):PRINT "[";R;"]"
2440 IF R>3 OR R<1 THEN 2420
2450 NI=R:NNI=R
2460 PAUSE 1
2470 CALL TOC:CALL TOC:CALL TOC:PAUSE 1
2480 CLS "BRB":CALL COLOR("0BY")
2490 CALL DBLPRT("C'EST PARTI !!!",5,10)
2500 PAUSE 2:CALL PHASER:CALL PHASER
2510 CALL COLOR("0BC"):CLS "BCC"
2520 RETURN
2530 !
2540 !-s/prg choix regles et niveau jeu-
2550 CLS "BCR":CALL COLOR("0MC")
2560 CALL DBLPRT("VOULEZ VOUS",2,4)
2570 PRINT:PRINT
2580 PRINT "[1] VOIR LES REGLES"
2590 PRINT:PRINT
2600 PRINT "[2] MODIFIER LE NIVEAU DE JEU"
2610 PRINT:PRINT
2620 PRINT "[3] FIN DE JEU"
2630 !
2640 CALL REPONSE(R)
2650 IF R<1 OR R>3 THEN 2640
2660 ON R GOTO 1920,2230,2670
2670 ! fin
2680 CALL LINON
2690 CLS "BBG":CALL COLOR("0RY")
2700 CALL DBLPRT("AU REVOIR",11,10)
2710 PAUSE 4
2720 !
2730 CLS "BCC":END
2740 !
2750 ! S/PRG UTILITAIRES
2760 SUB TOC
2770 TOC$="0D7C91B2BAB602FC"
2780 CALL SPEECH("L,"&TOC$)
2790 SUBEND
2800 SUB PHASER
2810 PHA$="0E683FC7031EF040043CE0010F78C00216B040042C60010F5840031AD08006FE"
2820 CALL SPEECH("L,"&PHA$)
2830 SUBEND
2840 SUB BLEU
2850 CALL COLOR("0bC")
2860 SUBEND
2870 SUB JAUNE
2880 CALL COLOR("0YC")
2890 SUBEND
2900 SUB TOUCHE
2910 LOCATE (22,1)
2920 PRINT "ENFONCER UNE TOUCHE POUR CONTINUER"
2930 REM
2940 CALL KEY1(K,S)
2950 IF S<>1 THEN 2940
2960 SUBEND
2970 SUB REPONSE(R)
2980 PRINT
2990 LOCATE (22,1)
3000 PRINT "VOTRE CHOIX S.V.P."
3010 CALL KEY1(A,B):IF B<>1 THEN 3010
3020 R=A-48
3030 SUBEND
3040 SUB LASER
3050 LAS$(1)="0D9816C301EDE72CB8B4CBECBDD7D88AA6F3A2DD41AAF6BDB46407AFDAE3CEAA"
3060 LAS$(2)="1EAA6AB7BE4A7CB86ADC6D37C9E04BE87411B508C04302FE"
3070 LASER$=LAS$(1)&LAS$(2)
3080 CALL SPEECH("L,"&LASER$)
3090 SUBEND
3100 SUB EXPLOSION
3110 EXPL$(1)="0BA02163031B18008D1E139840073A108100F0901E81080480478F08442002"
3120 EXPL$(2)="0570CEBD02110840704E118840043CE0010F78C00316B080052C2001094880"
3130 EXPL$(3)="0214A0000528"
3140 EXPLOSION$=EXPL$(1)&EXPL$(2)&EXPL$(3)
3150 CALL SPEECH("L,"&EXPLOSION$)
3160 SUBEND
3170 SUB COUCOU
3180 COU$(1)="02882BCD51B69A6855B340F1E16A338903E517699E2A6154B80A9295048153"
3190 COU$(2)="95AA500D0006C4996684D44B84358E125455D1AED646B08325369C584109"
3200 COU$(3)="72B0C4B86321B061A21B49848A77156B82122EDCE31D3F0FF01"
3210 COUCOU$=COU$(1)&COU$(2)&COU$(3)
3220 CALL SPEECH("L,"&COUCOU$)
3230 SUBEND
3240 SUB LINOF
3250 CALL POKE(50850,162,5,45,162,136,45,10):CALL EXEC(50850):SUBEND
3260 SUB LINON
3270 CALL POKE(50850,162,5,45,162,200,45,10):CALL EXEC(50850):SUBEND
3280 SUB INITPLAY
3290 CALL POKE(50688,165,8,6,10):CALL POKE(49156,198,0)
3300 SUBEND
3310 SUB PLAY(NO$,L,D)
3320 FOR I=1 TO LEN(NO$)STEP 2
3330 K=POS("DO.RE.MI.FA.SO.LA.SI.",SEG$(NO$,I,2),1)
3340 P=VAL(SEG$("1991176158149133118105",K,3))
3350 CALL POKE(258,P,D+128)
3360 PAUSE L/50
3370 NEXT
3380 CALL POKE(259,0)
3390 SUBEND
3400 SUB DBLPRT(Z$,X,Y)
3410 CALL COLOR("0LH")
3420 K$="":FOR I=1 TO LEN(Z$)
3430 K$=K$&RPT$(SEG$(Z$,I,1),2):NEXT
3440 LOCATE (Y,X):PRINT K$
3450 LOCATE (Y+1,X):PRINT K$
3460 CALL COLOR("0"):SUBEND

Ce listing est uniquement proposé pour un usage privé.
Sans accord écrit préalable, vous n'êtes pas autorisé à le distribuer, le transmettre ou le rediffuser.