1 REM +++++++++++++++++++++++++++++++++ 2 REM ! Program .... BOMB.BAS 3 REM ! Utg}va 1979-03-01 4 REM ! av (c) Claes Jennel <1677> 7 REM ! Minne 16 Kbytes 9 REM +++++++++++++++++++++++++++++++++ 10 REM H{r g{ller det att rensa marken 11 REM helt med bomber fr}n ditt plan. 12 REM 50 ; INP(3%)CHR$(12%) 60 DIM B$(24,40)=1 70 FOR A=1 TO 3 80 GOSUB 1510 90 GOSUB 1240 100 FOR H=1 TO 1000 : NEXT H 110 PRINT CHR$(12) : OUT 6,0 120 FOR H=1 TO 500 : NEXT H 130 NEXT A 140 GOSUB 1510 : GOSUB 1240 150 OUT 6,0 : GOTO 1300 160 R=18 : K=0 : S1%=0% : S2%=0% : S3%=0% 170 GOSUB 780 180 GOSUB 830 190 RESTORE 200 FOR V=1 TO 26 210 READ N,T 220 FOR I=1 TO N 230 K=K+1 240 B$(R,K)=CHR$(T) 250 ; CUR(R,K);B$(R,K); 260 NEXT I 270 IF K<>39 THEN 290 280 K=0 : R=R+1 290 NEXT V 300 DATA 34,79,5,127 310 DATA 2,127,31,79,6,127 320 DATA 4,127,10,79,2,127,2,79,1,127,6,79,1,127,6,79,7,127 330 DATA 4,127,3,79,4,127,3,79,2,127,1,79,2,127,5,79,3,127,4,79,8,127 340 DATA 39,127 350 GOSUB 1040 : GOSUB 780 360 RANDOMIZE 370 R=INT(30*RND+12) 380 H=4+12*RND : P=1 : P2=1 390 FOR K=79 TO -2 STEP -1 400 IF K<-1 THEN 480 : IF K<2 THEN 430 410 SETDOT R,K 420 IF K>76 THEN 480 430 SETDOT R-1,K+3 440 ON P GOTO 450,470 450 A=INP(56) : IF A=160 THEN 460 ELSE 480 460 P=2 : Q1=1 : Q2=-1 : A=0 : P1=0 : P2=0 470 GOSUB 550 480 FOR A=1 TO 5*H : NEXT A 490 OUT 6,0 500 IF K>75 THEN 520 510 CLRDOT R-1,K+4 : CLRDOT R,K+4 520 FOR A=1 TO 2*H : NEXT A 530 NEXT K : IF P2=0 THEN 350 540 GOSUB 660 : GOTO 350 550 CLRDOT R+Q1-Q2,K+3 560 Q2=INT(Q1/14)+1 : Q1=Q1+Q2 570 IF R+Q1-Q2>53 THEN 610 580 IF K+2<2 THEN 660 590 SETDOT R+Q1-Q2,K+2 600 RETURN 610 X=INT((K+2)/2) : Y=INT((R+Q1-Q2)/3) 620 IF B$(Y,X)=CHR$(32) THEN 590 630 IF B$(Y,X)=CHR$(79) THEN 710 640 IF P1=0 THEN 660 650 P=1 : RETURN 660 S3%=S3%+1% 670 PRINT CHR$(7) 680 IF S3%=10% THEN 690 ELSE 700 690 GOSUB 830 : GOTO 1140 700 GOSUB 830 : P1=1 : RETURN 710 B$(Y,X)=CHR$(32) 720 ; CUR(Y,X);B$(Y,X); 730 OUT 6,137 740 S2%=S2%+1% 750 IF S2%<>10% THEN 770 760 S2%=0% : S1%=S1%+1% 770 P1=1 : RETURN 780 S%=S1%+1% : P7%=40% 790 GOSUB 860 800 S%=S2%+1% : P7%=50% 810 GOSUB 860 820 RETURN 830 S%=S3%+1% : P7%=70% 840 GOSUB 860 850 RETURN 860 ON S% RESTORE 930,940,950,960,970,980,990,1000,1010,1020,1030 870 READ C$ : N%=1% 880 FOR I%=0% TO 8% 890 FOR J%=P7% TO P7%+5% 900 IF MID$(C$,N%,1%)="1" THEN SETDOT I%,J% ELSE CLRDOT I%,J% 910 N%=N%+1% : NEXT J% : NEXT I% 920 RETURN 930 DATA 111111100001100001100001100001100001100001100001111111 940 DATA 001100000100000100000100000100000100000100000100001110 950 DATA 111111100001000001000001111111100000100000100000111111 960 DATA 111111100001000001000001001111000001000001100001111111 970 DATA 100001100001100001100001111111000001000001000001000001 980 DATA 111111100000100000100000111111000001000001100001111111 990 DATA 111111100001100000100000111111100001100001100001111111 1000 DATA 111110000010000010000010000111000010000010000010000010 1010 DATA 111111100001100001100001111111100001100001100001111111 1020 DATA 111111100001100001100001111111000001000001100001111111 1030 DATA 111111111111111111111111111111111111111111111111111111 1040 FOR X1=1 TO 39 1050 IF B$(21,X1)=CHR$(32) THEN GOSUB 1090 1060 IF B$(20,X1)=CHR$(32) THEN GOSUB 1100 1070 IF B$(19,X1)=CHR$(32) THEN GOSUB 1110 1080 NEXT X1 : RETURN 1090 B$(21,X1)=B$(20,X1) : PRINT CUR(21,X1);B$(21,X1) 1100 B$(20,X1)=B$(19,X1) : PRINT CUR(20,X1);B$(20,X1) 1110 B$(19,X1)=B$(18,X1) : PRINT CUR(19,X1);B$(19,X1) 1120 B$(18,X1)=CHR$(32) : PRINT CUR(18,X1);B$(18,X1) 1130 RETURN 1140 IF S1%>9 THEN S$="PROFFSBOMBARE!" : GOTO 1190 1150 IF S1%>8 THEN S$="SKICKLIGT!" : GOTO 1190 1160 IF S1%>7 THEN S$="BRA!!" : GOTO 1190 1170 IF S1%>6 THEN S$="SKAPLIGT!" : GOTO 1190 1180 S$="VISSET!" 1190 PRINT CUR(23,1);S$;" ETT NYTT F\RS\K"; : INPUT Q$ 1200 PRINT CHR$(12) 1210 IF Q$="JA" THEN GOTO 1500 1220 IF Q$="ja" THEN 1500 1230 STOP 1240 PRINT CUR(3,10);"j?/o4h?/o4jt x5j?/o4" 1250 PRINT CUR(4,10);"j5 j5j5 j5j7/k5j5 j5" 1260 PRINT CUR(5,10);"j?/o0j5 j5j5 j5j?/o0" 1270 PRINT CUR(6,10);"j5 j5j5 j5j5 j5j5 j5" 1280 PRINT CUR(7,10);'*///!"///!*% *%*///!' 1290 OUT 6,7 : RETURN 1300 PRINT CUR(15,5);CHR$(135);"Kan DU spelreglerna? (JA/NEJ)"; 1310 INPUT S$ : IF S$="JA" THEN 1490 : IF S$="ja" THEN 1490 1320 PRINT CHR$(12),CHR$(7) 1330 PRINT "* BOMBPLAN KOMMER FR]N H\GER P] VARIER-" 1340 PRINT " ANDE H\JD OCH MED VARIERANDE FART" : GOSUB 1540 1350 PRINT "* GENOM ATT TRYCKA P] MELLANSLAGSTAN-" 1360 PRINT " GENTEN SL[PPER DU EN BOMB" : GOSUB 1540 1370 PRINT "* DET G[LLER ATT TR[FFA S] M]NGA ""O""" 1380 PRINT " SOM M\JLIGT. ANTAL TR[FF VISAS UPP-" 1390 PRINT " TILL I MITTEN P] SK[RMEN" : GOSUB 1540 1400 PRINT "* DU SKALL UNDVIKA ATT TR[FFA DIREKT I" 1410 PRINT " MARKEN ELLER V[NSTER BILDKANT." 1420 PRINT " ANTALET MISSAR ANGES UPPE TILL H\GER" : GOSUB 1540 1430 PRINT "* EFTER 10 MISSAR AVBRYTS SPELET." 1440 PRINT " SOM MISS R[KNAS [VEN FLYGPLAN SOM" 1450 PRINT " INTE HAR SL[PPT N]GON BOMB" : GOSUB 1540 1460 PRINT "* DU KAN SL[PPA EN NY BOMB S] SNART" 1470 PRINT " SOM F\REG]ENDE BOMB HAR N]TT MARKEN" : GOSUB 1540 1480 PRINT CUR(22,10);"[R DU REDO?(JA)"; : INPUT S$ 1490 PRINT CHR$(12) 1500 GOSUB 1510 : GOTO 160 1510 FOR I=0 TO 23 1520 PRINT CUR(I,0);CHR$(151) 1530 NEXT I : RETURN 1540 FOR A=1 TO 5000 : NEXT A : PRINT CHR$(7) : RETURN