1 REM Ins{nt av 2839 10 REM ******************************** 20 REM * FLYKT * 60 REM ******************************** 70 ; CHR$(12) : Z1%=0% 80 ; "**************** FLYKT *****************" 90 ; "Detta spel g}r ut p} att du (p} sk{rmen representerad av en platta l{ngst ner)" 91 ; "skall f|rs|ka undvika att bli "; 100 ; "tr{ffad avde bollar som far omkring p} sk{rmen." 110 ; "Du sk|ter spelaren med hj{lp av f|ljandetangenter: " : ; 120 ; " G" 121 ; " V B" 122 ; " Mellanslag " 130 ; : ; "G=Upp}t,V=V{nster,B=H|ger och Mellanslag=Ner}t" 140 ; : ; "Du skall nu ange hur m}nga bollar du" 141 ; "vill ha.Normalt {r 15-20,men antalet" 142 ; "bollar kan varieras fr}n 1"; 150 ; " till 1400 " : ; "(Desto fler bollar,desto l}ngsammare g}r det dock)." 160 Q%=3 : N5%=0 170 RANDOMIZE 180 ONERRORGOTO 1010 : ; : ; "HUR M]NGA BOLLAR "; : INPUT F% 190 IF F%>1400 THEN ; : ; "F|r m}nga bollar.Pr|va med ett l{gre tal" : GOTO 180 200 ; CHR$(12) 210 IF F%>20 THEN ; CUR(11,11);"VAR V[NLIG V[NTA!" 220 DIM M%(F%),A%(F%),B%(F%) 230 FOR Z%=1% TO F% : M%(Z%)=INT(4%*RND+1%) : A%(Z%)=INT(45%*RND+1%) : B%(Z%)=20%+INT(39%*RND+1%) : NEXT Z% 240 REM ******** SPELPLANEN ******** 250 ; CHR$(12) 260 FOR I%=1% TO 24% : ; : ; CHR$(151); : NEXT I% 270 FOR G1%=0% TO 57% : SETDOT G1%,20% : SETDOT G1%,60% : NEXT G1% 280 FOR G1%=20% TO 60% : SETDOT 0%,G1% : NEXT G1% 290 Y%=40 : J%=57 : FOR G1%=20% TO 60% : SETDOT 58%,G1% : NEXT G1% 300 SETDOT J%,Y%-1% : SETDOT J%,Y% : SETDOT J%,Y%+1% 310 FOR L=3 TO 22 : ; CUR(L,1);CHR$(135);"*******";CHR$(151) : ; CUR(L,31);CHR$(135);"*******" 320 NEXT L 330 ; CUR(22,9);CHR$(135);"PO[NG:" 340 ; CUR(0,1);CHR$(135);"ANTAL ";CHR$(151) 350 ; CUR(1,1);CHR$(135);"BOLLAR";CHR$(151) 360 ; CUR(2,1);CHR$(135);" ";F%;CHR$(151) 370 ; CUR(0,31);CHR$(135);"H\GSTA" 380 ; CUR(1,31);CHR$(135);"PO[NG:" 390 IF N5%-1%>Z1% THEN Z1%=N5%-1% 400 ; CUR(2,31);CHR$(135);" ";Z1% 410 N5%=0 420 REM ***** HUVUDPROGRAM ***** 430 IF NOT INP(56%) AND 128% THEN 460 440 OUT 6%,171% : H%=INP(56%)-128% : IF H%=ASC('V') OR H%=ASC('v') THEN Q%=1% 450 IF H%=ASC('B') OR H%=ASC('b') THEN Q%=2% 451 IF H%=ASC('G') OR H%=ASC('g') THEN Q%=3 ELSE IF H%=ASC(' ') THEN Q%=4 460 CLRDOT J%,Y%-1% : CLRDOT J%,Y% : CLRDOT J%,Y%+1% 470 ; CUR(22%,17%);CHR$(135%);N5% : ON Q% GOTO 480,490,500,510 480 Y%=Y%-1% : GOTO 520 490 Y%=Y%+1% : GOTO 520 500 J%=J%-1% : GOTO 520 510 J%=J%+1% 520 N5%=N5%+1 : IF Y%<=21% THEN Q%=2 : GOTO 470 530 IF J%<=0% THEN Q%=4 : GOTO 470 540 IF J%>=58% THEN Q%=3 : GOTO 470 550 IF Y%>=59% THEN Q%=1 : GOTO 470 560 IF DOT(J%,Y%-1%) OR DOT(J%,Y%) OR DOT(J%,Y%+1%) AND Y%>22 AND Y%<58% AND J%<57 AND J%>1 THEN 880 570 SETDOT J%,Y%-1% : SETDOT J%,Y% : SETDOT J%,Y%+1% : FOR Z%=1% TO F% : ON M%(Z%) GOTO 580,650,720,790 580 CLRDOT A%(Z%),B%(Z%) : IF DOT(A%(Z%)+1%,B%(Z%)+1%) THEN 600 ELSE A%(Z%)=A%(Z%)+1% : B%(Z%)=B%(Z%)+1% 590 SETDOT A%(Z%),B%(Z%) : GOTO 860 600 IF A%(Z%)+1%=J% AND B%(Z%)+1%=Y% THEN 880 ELSE IF A%(Z%)+1%=J% AND B%(Z%)+1%=Y%-1% THEN 880 610 IF A%(Z%)+1%=J% AND B%(Z%)+1%=Y%+1 THEN 880 ELSE D%=INT(3%*RND+1%) : ON D% GOTO 620,630,640 620 M%(Z%)=2% : GOTO 860 630 M%(Z%)=3% : GOTO 860 640 M%(Z%)=4% : GOTO 860 650 CLRDOT A%(Z%),B%(Z%) : IF DOT(A%(Z%)-1%,B%(Z%)-1%) THEN 670 ELSE A%(Z%)=A%(Z%)-1% : B%(Z%)=B%(Z%)-1% 660 SETDOT A%(Z%),B%(Z%) : GOTO 860 670 IF A%(Z%)-1%=J% AND B%(Z%)-1%=Y% THEN 880 ELSE IF A%(Z%)-1%=J% AND B%(Z%)-1%=Y%-1 THEN 880 680 IF A%(Z%)-1%=J% AND B%(Z%)-1%=Y%+1 THEN 880 ELSE D%=INT(3%*RND+1%) : ON D% GOTO 690,700,710 690 M%(Z%)=1% : GOTO 860 700 M%(Z%)=3% : GOTO 860 710 M%(Z%)=4% : GOTO 860 720 CLRDOT A%(Z%),B%(Z%) : IF DOT(A%(Z%)-1%,B%(Z%)+1%) THEN 740 ELSE A%(Z%)=A%(Z%)-1% : B%(Z%)=B%(Z%)+1% 730 SETDOT A%(Z%),B%(Z%) : GOTO 860 740 IF A%(Z%)-1%=J% AND B%(Z%)+1%=Y% THEN 880 ELSE IF A%(Z%)-1%=J% AND B%(Z%)+1=Y%-1 THEN 880 750 IF A%(Z%)-1%=J% AND B%(Z%)+1%=Y%+1% THEN 880 ELSE D%=INT(3%*RND+1%) : ON D% GOTO 760,770,780 760 M%(Z%)=1% : GOTO 860 770 M%(Z%)=2% : GOTO 860 780 M%(Z%)=4% : GOTO 860 790 CLRDOT A%(Z%),B%(Z%) : IF DOT(A%(Z%)+1%,B%(Z%)-1%) THEN 810 ELSE A%(Z%)=A%(Z%)+1% : B%(Z%)=B%(Z%)-1% 800 SETDOT A%(Z%),B%(Z%) : GOTO 860 810 IF A%(Z%)+1%=J% AND B%(Z%)-1%=Y% THEN 880 ELSE IF A%(Z%)+1%=J% AND B%(Z%)-1%=Y%-1 THEN 880 820 IF A%(Z%)+1%=J% AND B%(Z%)-1%=Y%+1% THEN 880 ELSE D%=INT(3%*RND+1) : ON D% GOTO 830,840,850 830 M%(Z%)=1% : GOTO 860 840 M%(Z%)=2% : GOTO 860 850 M%(Z%)=3% : GOTO 860 860 NEXT Z% 870 GOTO 430 880 OUT 6,0 : SETDOT J%,Y%-1% : SETDOT J%,Y% : SETDOT J%,Y%+1% 881 ; CUR(20,9);CHR$(135);"******TR[FFAD!******" : OUT 6,137 890 ; CUR(21,9);CHR$(135); 900 Q%=3 : POKE 32474,201,199,197,206,168 910 POKE 32479,202,175,206,169,191 : POKE 32485,255 920 F5=22 930 OUT 6,0 : FOR L=4 TO F5 940 ; CUR(L-1,1);CHR$(135);"*******" : ; CUR(L-1,31);CHR$(135);"*******" : ; CUR(L,1);CHR$(135);"TR[FFAD" 950 ; CUR(L,31);CHR$(135);"TR[FFAD" 960 FOR Q1=1 TO 10 : IF INP(56) AND 128 THEN 1000 970 NEXT Q1 : OUT 6,171 : NEXT L 980 F5=F5-1 : L=0 : IF F5<4 THEN F5=22 990 GOTO 930 1000 T%=INP(56%)-128% : IF T%=ASC('J') OR T%=ASC('j') THEN 200 1001 IF T%=ASC('N') OR T%=ASC('n') THEN END ELSE 940 1010 ; : ; "Felaktigt tal.F|rs|k igen !" : GOTO 180