home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1991-12-02 | 2.8 KB | 100 lines |
- 10 CLEAR:DEFINT A-Z:SCREEN 1:COLOR 0,1:KEY OFF:CLS:LOCATE 3,10:PRINT"M E G A T R O N"
- 12 LOCATE 10,20:PRINT"By the Sysop of MedCom Systems BBS":LOCATE 14,20:PRINT"Orlando, Florida 1-305-351-0096"
- 15 FOR XX=1 TO 7500:NEXT XX:CLS
- 20 PRINT:PRINT:PRINT"Select your game ..."
- 30 PRINT:PRINT"GAME 1 2 3 4 5 6 7 8"
- 40 PRINT:PRINT"Players 1 1 1 1 2 2 2 2";
- 50 PRINT"Border N N Y Y N N Y Y";
- 60 PRINT"Blocks N Y N Y N Y N Y";
- 70 K$=INKEY$:IF K$="" THEN 70
- 80 IF K$<"1" OR K$>"8" THEN 70
- 90 IF K$<"5" THEN PLAYERS=1 ELSE PLAYERS=2
- 100 IF K$<"3" OR (K$>"4" AND K$<"7") THEN BORDER=0 ELSE BORDER=1
- 110 IF VAL(K$)/2-INT(VAL(K$)/2) THEN BLOCKS=0 ELSE BLOCKS=1
- 120 PRINT:PRINT"Game selected ... ";K$
- 130 PRINT:PRINT"Do you want sound effects (Y/N) ? ";
- 140 K$=INKEY$:IF K$="" THEN 140
- 150 IF INSTR("NnYy",K$)=0 THEN 140
- 160 NOISE=-(INSTR("NnYy",K$)>2)
- 170 IF NOISE THEN PRINT"YES" ELSE PRINT"NO"
- 180 PRINT:IF PLAYERS=1 THEN 200
- 190 PRINT"Red plays the '\' and 'z' keys."
- 200 PRINT"Green plays the '.' and '/' keys."
- 210 PRINT"(for left and right turns)."
- 220 PRINT:PRINT"PRESS THE SPACE BAR TO BEGIN !";
- 230 K$=INKEY$:IF K$<>" " THEN 230
- 240 WHILE NOT TIME.TO.QUIT
- 250 CLS:COLOR 1,0
- 260 RANDOMIZE VAL(MID$(TIME$,4,2)+RIGHT$(TIME$,2))
- 270 RESTORE
- 280 READ COUNT,XINC,YINC,XA,YA,XB,YB,CRASHFLAG
- 290 DATA 0,3,2,210,98,105,98,0
- 300 IF BLOCKS=0 THEN 420
- 310 FOR I=1 TO 3+RND*7
- 320 X1=(INT(318*RND)*XINC) MOD 318
- 330 X2=(INT(318*RND)*XINC) MOD 318
- 340 Y1=(INT(200*RND)*YINC) MOD 200
- 350 Y2=(INT(200*RND)*YINC) MOD 200
- 360 IF X1>X2 THEN SWAP X1,X2
- 370 IF Y1>Y2 THEN SWAP Y1,Y2
- 380 IF Y1>98 OR Y2<98 THEN 410
- 390 IF X1<=105 AND X2>=105 THEN 320
- 400 IF X1<=210 AND X2>=210 THEN 320
- 410 LINE (X1,Y1)-(X2,Y2),,BF:NEXT I
- 420 IF BORDER THEN LINE (XINC,YINC)-(318-XINC,200-YINC),,B
- 430 IF BORDER THEN PAINT (0,0)
- 440 DXA=INT(RND*3-1)
- 450 DYA=INT(RND*3-1)
- 460 IF ABS(DXA)=ABS(DYA) THEN 440
- 470 DXB=INT(RND*3-1)
- 480 DYB=INT(RND*3-1)
- 490 IF ABS(DXB)=ABS(DYB) THEN 470
- 500 K$=INKEY$:IF K$<>"" THEN 500
- 510 WHILE CRASHFLAG=0
- 520 IF NOISE THEN SOUND 37,0
- 530 K$=INKEY$
- 540 TURNS=0
- 550 IF K$="." THEN SWAP DXA,DYA:DYA=-DYA
- 560 IF K$="/" THEN SWAP DXA,DYA:DXA=-DXA
- 570 IF PLAYERS=1 THEN 610
- 580 IF K$="\" THEN SWAP DXB,DYB:DYB=-DYB
- 590 IF K$="z" THEN SWAP DXB,DYB:DXB=-DXB
- 600 GOTO 710
- 610 IF K$<>"." AND K$<>"/" THEN 640
- 620 SWAP DXB,DYB
- 630 IF RND<0.5 THEN DYB=-DYB ELSE DXB=-DXB
- 640 XT=(XB+DXB*XINC+318) MOD 318
- 650 YT=(YB+DYB*YINC+200) MOD 200
- 660 IF POINT (XT,YT)=0 THEN 710
- 670 DXB=-DXB
- 680 DYB=-DYB
- 690 TURNS=TURNS+1
- 700 IF TURNS<4 THEN 620
- 710 XA=(XA+DXA*XINC+318) MOD 318
- 720 YA=(YA+DYA*YINC+200) MOD 200
- 730 XB=(XB+DXB*XINC+318) MOD 318
- 740 YB=(YB+DYB*YINC+200) MOD 200
- 750 IF NOISE THEN SOUND 37+COUNT+COUNT,99
- 760 IF POINT (XA,YA) THEN CRASHFLAG=1
- 770 LINE (XA,YA)-(XA+XINC-1,YA+YINC-1),1,BF
- 780 IF POINT (XB,YB) THEN CRASHFLAG=2
- 790 LINE (XB,YB)-(XB+XINC-1,YB+YINC-1),2,BF
- 800 COUNT=COUNT+1
- 810 WEND
- 820 IF NOISE THEN SOUND 37,0
- 830 IF CRASHFLAG=1 THEN PSET (XA,YA)
- 840 IF CRASHFLAG=2 THEN PSET (XB,YB)
- 850 FOR I=1 TO 17
- 860 XR=RND*130-65
- 870 YR=RND*100-50
- 880 DRAW"C=CRASHFLAG;NM+=xr;,=yr;"
- 890 IF NOISE THEN SOUND RND*777+2222,1:NEXT I
- 900 IF CRASHFLAG=1 THEN RED=RED+COUNT
- 910 IF CRASHFLAG=2 THEN GRE=GRE+COUNT
- 920 LOCATE 1,1:PRINT"Score ... RED =";RED;" GREEN =";GRE
- 930 FOR DELAY=1 TO 1111 STEP 5+17*NOISE
- 940 IF NOISE AND CRASHFLAG=1 THEN SOUND 1148-DELAY,1
- 950 IF NOISE AND CRASHFLAG=2 THEN SOUND 37+DELAY,1
- 960 NEXT DELAY
- 970 WEND
-