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