1 REM Ins{nt av 2839 10 REM ******************************** 20 REM * BREAKOUT * 40 REM * Ver. 1.2 * 60 REM ******************************** 70 ; CHR$(12) 80 ; CUR(0,0);CHR$(151);STRING$(13,44);" BREAKOUT ";STRING$(13,44) 90 ; CUR(2,0);"Detta {r spelet BREAKOUT f|r 1 spelare." 91 ; "Spelaren skall med hj{lp av en 'racket' returnera en boll upp "; 100 ; "mot 4 f{lt." : ; : ; "Varje g}ng en boll tr{ffar ett f{lt" 101 ; "sl{cks en punkt i f{ltet och spelaren" 105 ; "f}r po{ng." 110 ; : ; "Bollen kan"; 120 ; " ochs} hamna mellan tv} f{lt." 121 ; "D} studsar bollen mellan dessa f{lt och spelaren f}r po{ng f|r varje punkt "; 130 ; "som sl{cks." 140 ; : ; "Punkter som sl{cks i f|rsta f{ltet ger" 141 ; "1 po{ng, i andra 2 po{ng, i tredje 3" 142 ; "po{ng och fj{rde f{ltet 5 po{ng" 150 ; CUR(23,0);"TRYCK p} RETURN n{r du l{st f{rdigt."; : GET V$ 160 ; CHR$(12) 170 ; CUR(0,0);CHR$(151);STRING$(13,44);" BREAKOUT ";STRING$(13,44) 180 ; : ; "F\r att styra 'racketen' anv{nder spelaren f|ljande tangenter: " 190 ; " Z = Racketen styrs }t v{nster - = Racketen styrs }t h|ger " 200 ; : ; "Spelaren har 3 bollar.N{r han missat en boll m}ste han trycka p} 'mellanslag'" 201 ; "f|r att f} n{sta boll i spel." 210 ; : ; "Hastigheten |kar desto fler po{ng spelaren uppn}r." 220 ; CUR(23,0);"TRYCK p} RETURN s} startar spelet"; : GET V$ 230 REM ********** SPELPLANEN ********** 240 N=30 : R=1 250 ; CHR$(12) 260 FOR I=1 TO 24 : ; : ; CUR(I,6);CHR$(151); : NEXT I 270 FOR G1=15 TO 65 : SETDOT 0,G1 : NEXT G1 280 ; CUR(0,0);"PO[NG";CHR$(151) 290 ; CUR(0,34);CHR$(135);"BOLL" 300 ; CUR(4,0);"H\GSTA" : ; CUR(5,0);"PO[NG:" 310 IF I1%>I2% THEN I2%=I1% 320 ; CUR(6,0);I2% : I1%=0 330 FOR G1=0 TO 69 : SETDOT G1,15 : SETDOT G1,65 : NEXT G1 340 FOR G1=4 TO 7 : FOR G2=16 TO 64 : SETDOT G1,G2 : NEXT G2 : NEXT G1 350 FOR G1=11 TO 13 : FOR G2=16 TO 64 : SETDOT G1,G2 : NEXT G2 : NEXT G1 360 FOR G1=17 TO 18 : FOR G2=16 TO 64 : SETDOT G1,G2 : NEXT G2 : NEXT G1 370 FOR G2=16 TO 64 : SETDOT 22,G2 : NEXT G2 380 RANDOMIZE : G%=40 : A%=24 : B%=20+INT(40*RND+1) : U%=3 390 IF R=1 THEN SETDOT 69,G% : SETDOT 69,G%-1 : SETDOT 69,G%+1 : SETDOT 69,G%-2 : SETDOT 69,G%+2 400 ; CUR(1,35);CHR$(135);R 410 REM ********** HUVUDPROGRAM ********** 420 FOR X=1 TO N : IF INP(56%) AND 128% 440 430 NEXT X : GOTO 560 440 T%=INP(56%)-128% 450 IF N>10 X=X+2 : IF X=62% G%=62% 550 FOR D%=-2% TO 2% : SETDOT 69%,G%+D% : NEXT D% 560 ; CUR(1%,0%);I1% : IF A%<>69% CLRDOT A%,B% ELSE IF B%<>G%+2% AND B%<>G%-2% CLRDOT A%,B% 570 IF I1%>1% N=22 ELSE 650 580 IF I1%>10% N=20 ELSE 650 590 IF I1%>100% N=18 ELSE 650 600 IF I1%>200% N=17 ELSE 650 610 IF I1%>300% N=15 ELSE 650 620 IF I1%>500% N=13 ELSE 650 630 IF I1%>800% N=11 ELSE 650 640 IF I1%>1000% N=9 ELSE 650 650 ON U% GOTO 660,670,680,690,700 660 A%=A%-1% : B%=B%-1% : GOTO 710 670 A%=A%-1% : B%=B%+1% : GOTO 710 680 A%=A%+1% : B%=B%+1% : GOTO 710 690 A%=A%+1% : B%=B%-1% : GOTO 710 700 A%=A%-1% 710 IF A%>69% 1070 ELSE IF DOT(A%,B%) 720 ELSE SETDOT A%,B% : X=0 : GOTO 420 720 OUT 6%,0% : IF B%=15% 840 730 IF B%=65% 880 740 IF A%=0% 750 ELSE 790 750 OUT 6%,131% : ON U% GOTO 760,770,750,750,780 760 U%=4% : GOTO 650 770 U%=3% : GOTO 650 780 U%=2%+INT(2%*RND+1%) : GOTO 650 790 IF A%=69% AND B%>15% AND B%<65% 810 ELSE 920 800 IF A%=69% AND B%=15% OR B%=65% 1070 ELSE 920 810 OUT 6%,131% : GOSUB 1100 : IF B%=G% U%=5% : GOTO 650 820 IF B%G% U%=2% : GOTO 650 840 OUT 6%,131% : GOSUB 1100 : IF A%>=69% 1070 850 ON U% GOTO 860,850,850,870 860 U%=2% : GOTO 650 870 U%=3% : GOTO 650 880 OUT 6%,131% : GOSUB 1100 : IF A%>=69% THEN 1070 890 ON U% GOTO 890,900,910,890 900 U%=1% : GOTO 650 910 U%=4% : GOTO 650 920 IF A%>20% I1%=I1%+1% : GOTO 960 930 IF A%>15% I1%=I1%+2% : GOTO 960 940 IF A%>9% I1%=I1%+3% : GOTO 960 950 IF A%>0% I1%=I1%+5% : GOTO 960 960 OUT 6%,173% : CLRDOT A%,B% 970 ON U% GOTO 980,1000,1020,1040,1060 980 IF NOT DOT(A%+1%,B%-1%) U%=4% : GOTO 650 990 U%=3% : GOTO 650 1000 IF NOT DOT(A%+1%,B%+1%) U%=3% : GOTO 650 1010 U%=4% : GOTO 650 1020 IF NOT DOT(A%-1%,B%+1%) U%=2% : GOTO 650 1030 U%=1% : GOTO 650 1040 IF NOT DOT(A%-1%,B%-1%) U%=1% : GOTO 650 1050 U%=2% : GOTO 650 1060 U%=2%+INT(2%*RND+1%) : GOTO 650 1070 R=R+1 : IF R=4% 1150 ELSE RANDOMIZE 1080 GOSUB 1210 : GOSUB 1260 : IF Q%<>ASC(' ') 1080 ELSE A%=24% : B%=20%+INT(40%*RND+1%) : U%=3% 1090 ; CUR(8,2);" " : ; CUR(8,34);" " : ; CUR(9,2);" " : ; CUR(9,34);" " : GOTO 400 1100 ON U% GOTO 1110,1120,1130,1140 1110 A%=A%+1% : B%=B%+1% : RETURN 1120 A%=A%+1% : B%=B%-1% : RETURN 1130 A%=A%-1% : B%=B%-1% : RETURN 1140 A%=A%-1% : B%=B%+1% : RETURN 1150 POKE 32336+2,71+128 : POKE 32336+3,65+128 : POKE 32336+4,77+128 : POKE 32336+5,69+128 1160 POKE 32464+2,79+128 : POKE 32464+3,86+128 : POKE 32464+4,69+128 : POKE 32464+5,82+128 1170 POKE 32336+34,71+128 : POKE 32336+35,65+128 : POKE 32336+36,77+128 : POKE 32336+37,69+128 1180 POKE 32464+34,79+128 : POKE 32464+35,86+128 : POKE 32464+36,69+128 : POKE 32464+37,82+128 1190 ; CUR(14,0);"IGEN" : ; CUR(15,0);"(J/N)?" 1200 GET U$ : IF U$="J" OR U$="j" THEN 240 ELSE IF U$="N" OR U$="n" THEN END ELSE 1200 1210 POKE 31784+2,78+128 : POKE 31784+3,69+128 : POKE 31784+4,87+128 1220 POKE 31912+2,66+128 : POKE 31912+3,65+128 : POKE 31912+4,76+128 : POKE 31912+5,76+128 1230 POKE 31784+34,78+128 : POKE 31784+35,69+128 : POKE 31784+36,87+128 1240 POKE 31912+34,66+128 : POKE 31912+35,65+128 : POKE 31912+36,76+128 : POKE 31912+37,76+128 1250 RETURN 1260 IF INP(56) AND 128 THEN 1270 ELSE 1260 1270 Q%=INP(56)-128 : RETURN