1 REM ***************************** 2 REM * BOLLSPEL.BAC - 16 K Minne * 3 REM * 80-11-20 / VER 1.0 * 4 REM * (c) Alf Wirdling <4230> * 5 REM ***************************** 10 REM variabler R$ C2% D% F2 M% S2% T% W% C1% V% H% S% I% 20 REM variabler R1% K1% R2% K2% R% K% F B% G% 30 PRINT CHR$(12);TAB(7);"BOLL-SPEL F\R TV] SPELARE" 40 PRINT TAB(7);STRING$(25,61) : ; 50 PRINT "Detta spel {r ett 'tennis-spel' som g}r" 60 PRINT "ut p} att hindra en boll med en racket." 70 PRINT : ; "Man f}r sj{lv v{lja hastighet hos" 80 PRINT "bollen och storleken p} racketarna." 90 PRINT : ; "Man man|vrerar racketarna med fyra" 100 PRINT "tangenter:" : ; 110 PRINT "A (a) - Flyttar v{nster racket ned}t" : ; 120 PRINT "S (s) - Flyttar v{nster racket upp}t" : ; 130 PRINT "[ ({) - Flyttar h|ger racket upp}t" : ; 140 PRINT "* (') - Flyttar h|ger racket ned}t" : ; 150 RANDOMIZE 160 PRINT : ; "VEM SKALL B\RJA SERVA ???" 170 PRINT : ; "H\GER (H) eller V[NSTER (V) "; : GET R$ : ; R$ 180 IF R$="V" OR R$="v" THEN C2%=4% : D%=1% ELSE C2%=77% : D%=2% 190 PRINT : ; "--- BOLLENS HASTIGHET ---" 200 PRINT : ; "F\RDR\JNINGS-TID I MILLI-SEK "; 210 INPUT F2 220 PRINT : ; "STORLEK P] RACKETERNA (1-20) "; 230 INPUT M% 240 PRINT : ; "PO[NG-SUMMA ATT SPELA TILL "; 250 INPUT S2% 260 PRINT : ; "VINNA MED TV] PO[NG (J/N) "; 270 GET R$ : ; R$ : IF R$="J" OR R$="j" THEN T%=1% ELSE T%=2% 280 PRINT : ; "SKALL PO[NG R[KNAS ENDAST VID EGEN SERV" 290 PRINT : ; "(J/N) "; : GET R$ : ; R$ 300 IF R$="J" OR R$="j" THEN W%=2% ELSE W%=1% 310 PRINT : ; "TRYCK RETURN OCH SPELET B\RJAR "; : GET R$ 320 C1%=35% : V%=0% : H%=0% : S%=D% 330 PRINT CHR$(12); : FOR I%=2% TO 21% 340 PRINT CUR(I%,0%);CHR$(151); : NEXT I% 350 PRINT CUR(0,3);"V[NSTER MOT H\GER"; 360 PRINT CUR(23,8);V%,,H%; 370 R1%=34% : K1%=3% : R2%=34% : K2%=78% 380 R%=R1% : K%=K1% : GOSUB 950 390 K%=K2% : GOSUB 950 : SETDOT C1%,C2% 400 REM * F\RDR\JNINGSTID * 410 FOR F=1 TO F2 : NEXT F : ON D% GOTO 420,650 420 ON INT(RND*3+1) GOTO 440,610,630 430 REM * ]T H\GER SNETT UPP]T * 440 IF C1%-1%<6% THEN 610 450 CLRDOT C1%,C2% : C1%=C1%-1% : C2%=C2%+1% : SETDOT C1%,C2% 460 IF C2%<>77% THEN 890 470 IF DOT(C1%,78%) THEN D%=2% : GOTO 410 480 CLRDOT C1%,C2% : SETDOT C1%,C2%+2% 490 ON W% GOTO 500,510 500 V%=V%+1% : GOTO 520 510 IF S%=1% THEN V%=V%+1% 520 PRINT CUR(23,8);V%,,H%; 530 S%=1% : GOSUB 1110 540 IF V%H% THEN 1130 570 CLRDOT C1%,C2%+2% : C1%=35% : C2%=4% 580 FOR I%=R1% TO R1%+M%-1% : CLRDOT I%,3% : NEXT I% 590 R1%=34% : K1%=3% : R%=R1% : K%=K1% : GOSUB 950 : SETDOT C1%,C2% : GOTO 410 600 REM * ]T H\GER RAKT FRAM * 610 CLRDOT C1%,C2% : C2%=C2%+1% : SETDOT C1%,C2% : GOTO 460 620 REM * ]T H\GER SNETT NED]T * 630 IF C1%+1%>65% THEN 610 640 CLRDOT C1%,C2% : C1%=C1%+1% : C2%=C2%+1% : SETDOT C1%,C2% : GOTO 460 650 ON INT(RND*3+1) GOTO 670,840,860 660 REM * ]T V[NSTER SNETT UPP]T * 670 IF C1%-1%<6% THEN 840 680 CLRDOT C1%,C2% : C1%=C1%-1% : C2%=C2%-1% : SETDOT C1%,C2% 690 IF C2%<>4% THEN 890 700 IF DOT(C1%,3%) THEN D%=1% : GOTO 410 710 CLRDOT C1%,C2% : SETDOT C1%,C2%-2% 720 ON W% GOTO 730,740 730 H%=H%+1% : GOTO 750 740 IF S%=2% THEN H%=H%+1% 750 PRINT CUR(23,8);V%,,H%; 760 S%=2% : GOSUB 1110 770 IF H%V% THEN 1130 800 CLRDOT C1%,C2%-2% : C1%=35% : C2%=77% 810 FOR I%=R2% TO R2%+M%-1% : CLRDOT I%,78% : NEXT I% 820 R2%=34% : K2%=78% : R%=R2% : K%=K2% : GOSUB 950 : SETDOT C1%,C2% : GOTO 410 830 REM * ]T V[NSTER RAKT FRAM * 840 CLRDOT C1%,C2% : C2%=C2%-1% : SETDOT C1%,C2% : GOTO 690 850 REM * ]T V[NSTER SNETT NED]T * 860 IF C1%+1%>65% THEN 840 870 CLRDOT C1%,C2% : C1%=C1%+1% : C2%=C2%-1% : SETDOT C1%,C2% : GOTO 690 880 REM * POLLNING * 890 IF INP(56%)=193% OR INP(56%)=225% THEN B%=1% : GOTO 930 900 IF INP(56%)=211% OR INP(56%)=243% THEN B%=2% : GOTO 930 910 IF INP(56%)=219% OR INP(56%)=251% THEN B%=3% : GOTO 930 920 IF INP(56%)=167% THEN B%=4% ELSE 410 930 GOSUB 960 : GOTO 410 940 REM * UTL[GGNING AV RACKET * 950 FOR G%=R% TO R%+M%-1% : SETDOT G%,K% : NEXT G% : RETURN 960 ON B% GOTO 980,1010,1040,1070 970 REM * TANGENT A OCH a * 980 IF R1%+M%>65% THEN 1090 990 CLRDOT R1%,K1% : R1%=R1%+1% : R%=R1% : K%=K1% : GOSUB 950 : GOTO 1090 1000 REM * TANGENT S och s * 1010 IF R1%-1%<6% THEN 1090 1020 CLRDOT R1%+M%-1%,K1% : R1%=R1%-1% : R%=R1% : K%=K1% : GOSUB 950 : GOTO 1090 1030 REM * TANGENT [ och { * 1040 IF R2%-1%<6% THEN 1090 1050 CLRDOT R2%+M%-1%,K2% : R2%=R2%-1% : R%=R2% : K%=K2% : GOSUB 950 : GOTO 1090 1060 REM * TANGENT * och ' * 1070 IF R2%+M%>65% THEN 1090 1080 CLRDOT R2%,K2% : R2%=R2%+1% : R%=R2% : K%=K2% : GOSUB 950 1090 RETURN 1100 REM * F\RDR\JNING VID NY SERV * 1110 FOR F=1 TO 2000 : NEXT F : RETURN 1120 REM * SLUT - NY MATCH ??? * 1130 PRINT CUR(23,0);STRING$(39,32); 1140 IF H%>V% THEN 1160 1150 PRINT CUR(23,0);"V[NSTER, VANN MATCHEN MED";V%;" -";H% : GOTO 1170 1160 PRINT CUR(23,0);"H\GER, VANN MATCHEN MED";H%;" -";V% 1170 PRINT : ; "SPELA MER (J/N) "; : GET R$ : GET R$ : ; R$ 1180 IF R$="J" OR R$="j" THEN 160 1190 END