100 RANDOMIZE 105 A=2 110 CALL CLEAR 120 CALL CHAR(96,"00FF999999FFFFFF") 130 CALL CHAR(112,"000000000086CFFE") 140 CALL CHAR(104,"FFFFFF") 150 CALL CHAR(42,"000000607806") 155 PZ=0 160 CALL COLOR(9,A,16) 170 CALL COLOR(11,16,1) 180 CALL COLOR(10,15,1) 190 REM START NEUES SPIEL 210 REM HAEUSER AUFBAUEN 215 SG=3 220 CALL CLEAR 230 I=2 240 J=RND*8+3 250 FOR B=1 TO RND*(SG+1) 260 CALL VCHAR(J,I,96,24-J) 270 I=I+1 280 IF I>31 THEN 320 290 NEXT B 300 I=I+1 310 IF I<32 THEN 240 320 CALL HCHAR(24,1,104,32) 330 REM START BOMBER 340 FX=1 350 FY=1 360 LX=0 370 LY=1 380 LX=LX+1 390 IF LX<32 THEN 420 400 LY=LY+1 410 LX=1 420 CALL SOUND(-1000,-6,24-FY) 430 FX=FX+1 440 IF FX<32 THEN 470 450 FX=1 460 FY=FY+1 470 CALL GCHAR(FY,FX,T) 480 IF T=96 THEN 800 490 CALL GCHAR(FY+1,FX+1,T) 500 IF T<>96 THEN 520 510 IF BZ<2 THEN 800 520 CALL HCHAR(FY,FX,112) 530 CALL HCHAR(LY,LX,32) 540 PZ=PZ+1 550 CALL KEY(0,KEY,S) 560 IF S=0 THEN 610 570 IF BZ>0 THEN 620 580 BY=FY 590 BX=FX 600 BZ=1 610 IF BZ=0 THEN 730 620 CALL HCHAR(BY,BX,32) 630 BX=BX+1 640 BY=BY+1 650 IF BX<32 THEN 680 660 BX=1 670 BY=BY+1 680 IF BY>22 THEN 760 690 CALL GCHAR(BY,BX,X) 700 IF X=96 THEN 760 710 CALL HCHAR(BY,BX,42) 720 BZ=BZ+1 730 IF FY<23 THEN 380 740 IF FX<31 THEN 380 750 A=A+1 :: GOTO 160 760 CALL VCHAR(1,BX,32,BY) 770 CALL SOUND(-2000,-5,0) 780 BZ=0 790 GOTO 730 800 DISPLAY AT(1,2):"PUNKTZAHL = ";PZ 810 IF HS>PZ THEN 840 820 HS=PZ 830 GOSUB 910 840 DISPLAY AT(2,2):"HIGHSCORE = ";HS 845 CALL BESTENLISTE(PZ) 850 DISPLAY AT(3,2):"NOCH EIN SPIEL? " 860 CALL KEY(0,K,S) 870 IF S=0 THEN 860 880 IF K=74 THEN 105 890 IF K<>78 THEN 860 900 END 910 FOR SI=1 TO 5 920 FOR SJ=-3 TO -1 930 CALL SOUND(100,SJ,1) 940 NEXT SJ 950 NEXT SI 960 RETURN 20000 SUB BESTENLISTE(Z) 20010 OPEN #1:"DSK1.SCORES",SEQUENTIAL,INTERNAL,UPDATE,VARIABLE :: FOR A=1 TO 10 :: INPUT #1:NAME$(A),P(A) :: NEXT A 20020 IF ZP(A) OR P(A)=0 THEN 20050 20040 NEXT A :: GOTO 20070 20050 FOR B=9 TO A STEP -1 :: P(B+1)=P(B) :: NAME$(B+1)=NAME$(B) :: NEXT B 20060 CALL CLEAR :: INPUT "NAME: ":NAME$(A) :: P(A)=Z 20070 DISPLAY AT(1,8) ERASE ALL :"BESTENLISTE":" ===========" 20080 CALL CHAR(33,"1818181818181818") 20090 CALL VCHAR(4,7,33,21) :: CALL VCHAR(4,18,33,21) 20100 RESTORE #1 :: DISPLAY AT(4,1):"RANG NAME PUNKTE" 20110 FOR A=1 TO 10 :: DISPLAY AT(A*2+4,1) SIZE(-3):STR$(A);"." :: DISPLAY AT(A*2+4,6) SIZE(10):NAME$(A) 20120 DISPLAY AT(A*2+4,17) SIZE(10):P(A) :: PRINT #1:NAME$(A),P(A) :: NEXT A :: CLOSE #1 20130 CALL KEY(0,K,S) :: IF S=0 THEN 20130 ELSE CALL CLEAR 20140 SUBEND