Source Code
1 REM "BASKETBALL" 1984 BILL FERREBEE 749 HILL STREET NO. 6 PARKERSBURG, WV 26104 TO SAVE GOTO 9900
2 RAND
10 DIM T$(2,8)
11 DIM M(2)
12 DIM P(2)
13 DIM S(2)
14 DIM X(2)
15 FOR J=1 TO 2
16 LET P(J)=0
17 LET M(J)=0
18 LET S(J)=0
19 LET X(J)=0
20 NEXT J
30 GOTO 9000
100 IF I=2 THEN GOTO 150
110 PRINT AT 1,1;"% %Y%O%U%R% %S%H%O%T%:% "
120 GOSUB 5200
130 GOSUB 5400
140 GOTO 200
150 LET B=INT (RND*4)+1
200 LET R=RND
210 CLS
220 PRINT TAB 16-(INT (LEN X$+5)/2);X$;" SHOT:"
230 LET S(I)=S(I)+1
231 FOR J=1 TO 2
232 IF S(J)=45 THEN GOTO 6700
233 IF S(J)=90 THEN GOTO 6600
234 NEXT J
240 GOTO (300 AND B=1)+(400 AND B=2)+(500 AND B=3)+(600 AND B=4)+(700 AND B=5)
300 PRINT TAB 9;"LONG JUMP SHOT"
310 IF R<.28*C THEN GOSUB 5700
315 IF R<.28*C THEN GOTO 350
320 IF R>.9 THEN GOTO 800
330 IF R<.5*C THEN GOSUB 6200
335 IF R<.5*C THEN GOTO 350
340 IF R<.89*C THEN GOSUB 6300
350 GOTO 900
400 PRINT TAB 9;"SHORT JUMP SHOT"
410 IF R<.38*C THEN GOSUB 5700
415 IF R<.38*C THEN GOTO 350
420 GOTO 320
500 PRINT TAB 14;"LAYUP"
510 IF R<.43*C THEN GOSUB 5700
515 IF R<.43*C THEN GOTO 350
520 IF R>.94 THEN GOSUB 6350
525 IF R>.94 THEN GOTO 350
530 GOTO 320
600 PRINT TAB 12;"HOOK SHOT"
610 GOTO 410
700 PRINT TAB 12;"SET SHOT"
710 GOTO 510
800 GOSUB 6100
900 GOTO 100
\n5000 PRINT AT 21,3;"% %P%R%E%S%S% %A%N%Y% %K%E%Y% %T%O% %C%O%N%T%I%N%U%E% "
\n5001 FOR J=1 TO 2
\n5002 NEXT J
\n5005 PRINT AT 21,3;" PRESS ANY KEY TO CONTINUE "
\n5010 IF INKEY$="" THEN GOTO 5000
\n5020 CLS
\n5030 RETURN
\n5100 FOR J=1 TO 25
\n5110 NEXT J
\n5120 CLS
\n5130 RETURN
\n5200 PRINT
\n5210 PRINT TAB 3;"% %1% LONG (30 FT.) JUMP SHOT"
\n5211 PRINT TAB 3;"% %2% SHORT (15 FT.) JUMP SHOT"
\n5212 PRINT TAB 3;"% %3% LAYUP"
\n5213 PRINT TAB 3;"% %4% HOOK SHOT"
\n5214 PRINT TAB 3;"% %5% SET SHOT"
\n5215 PRINT TAB 3;"% %D% TO CHANGE DEFENSES"
\n5216 PRINT TAB 3;"% %S% TO VIEW SCORE"
\n5217 PRINT TAB 3;"% %P% TO VIEW SHOOTING \ '/\. "
\n5220 PRINT
\n5230 RETURN
\n5295 PRINT AT 1,1;"% %N%E%W% %D%E%F%E%N%S%E%:"
\n5300 PRINT
\n5310 PRINT TAB 3;"% %6% PRESS"
\n5311 PRINT TAB 3;"% %7% MAN-TO-MAN"
\n5312 PRINT TAB 3;"% %8% ZONE"
\n5313 PRINT TAB 3;"% %9% NONE"
\n5320 PRINT
\n5330 RETURN
\n5400 IF INKEY$="" THEN GOTO 5400
\n5405 LET A=CODE INKEY$
\n5410 IF A<29 OR A>33 AND A<>41 AND A<>53 AND A<>56 THEN GOTO 5400
\n5420 IF A>28 AND A<34 THEN LET B=A-28
\n5425 IF A>28 AND A<34 THEN RETURN
\n5430 IF A=41 THEN GOSUB 7000
\n5440 IF A=53 THEN GOSUB 7100
\n5450 IF A=56 THEN GOSUB 7200
\n5460 GOTO 110
\n5470 RETURN
\n5499 LET I=1
\n5500 IF INKEY$="" THEN GOTO 5500
\n5505 LET A=CODE INKEY$
\n5510 IF A<34 OR A>37 THEN GOTO 5500
\n5520 IF I=1 THEN LET C=(A/2-9)/7
\n5521 IF I=2 THEN LET C=(A/2-9)/8
\n5530 RETURN
\n5600 PRINT
\n5610 PRINT TAB 1;"% %S%C%O%R%E%:% "
\n5612 PRINT
\n5615 PRINT TAB 8;T$(1);TAB 24;P(1)
\n5620 PRINT TAB 8;T$(2);TAB 24;P(2)
\n5630 PAUSE 90
\n5640 FOR J=1 TO 2
\n5650 NEXT J
\n5660 RETURN
\n5700 PRINT TAB 10;"SHOT IS GOOD"
\n5710 IF B=1 THEN LET P(I)=P(I)+3
\n5715 IF B=1 THEN PRINT TAB 10;"THREE POINTS"
\n5720 IF B=1 THEN GOTO 5740
\n5730 LET P(I)=P(I)+2
\n5735 PRINT TAB 11;"TWO POINTS"
\n5740 LET M(I)=M(I)+1
\n5750 IF I=1 THEN GOTO 5765
\n5755 LET I=1
\n5760 GOTO 5770
\n5765 LET I=2
\n5770 GOSUB 5600
\n5771 GOSUB 6010
\n5775 GOSUB 5100
\n5780 RETURN
\n5800 PRINT AT 9,9;"% %C%E%N%T%E%R% %J%U%M%P% "
\n5810 GOSUB 6000
\n5815 PRINT
\n5820 PRINT TAB 16-(INT (LEN X$+13)/2);X$;" GETS THE TIP"
\n5830 PAUSE 90
\n5835 CLS
\n5840 RETURN
\n5880 GOSUB 5600
\n5890 RETURN
\n5900 PRINT
\n5910 PRINT TAB 1;"% %S%H%O%O%T%I%N%G% %P%E%R%C%E%N%T%A%G%E%:% "
\n5915 PRINT
\n5920 FOR J=1 TO 2
\n5922 IF M(J)=0 OR S(J)=0 THEN LET X(J)=0
\n5924 IF M(J)=0 OR S(J)=0 THEN GOTO 5932
\n5930 LET X(J)=INT ((M(J)/S(J))*100)
\n5932 IF M(J)=0 OR S(J)=0 THEN LET M(J)=0
\n5940 PRINT TAB 8;T$(J);TAB 24;X(J);TAB 27;"\ '/\. "
\n5950 NEXT J
\n5955 IF S(1)=90 OR S(2)=90 THEN GOTO 5970
\n5960 GOSUB 5100
\n5970 RETURN
\n6000 LET I=INT (RND*2)+1
\n6010 IF I=1 THEN LET X$=H$
\n6015 IF I=2 THEN LET X$=V$
\n6020 RETURN
\n6100 PRINT TAB 16-(INT (LEN X$+17)/2);X$;" FOULED--TWO SHOTS"
\n6105 LET S(I)=S(I)-1
\n6110 IF RND<.5 THEN GOTO 6130
\n6115 IF RND<.75 THEN GOTO 6150
\n6120 PRINT TAB 7;"BOTH SHOTS MISSED"
\n6125 GOTO 6160
\n6130 PRINT TAB 8;"BOTH SHOTS MADE"
\n6135 LET P(I)=P(I)+2
\n6140 GOTO 6160
\n6150 PRINT TAB 6;"1 MADE AND 1 MISSED"
\n6155 LET P(I)=P(I)+1
\n6160 GOSUB 5750
\n6170 RETURN
\n6200 PRINT TAB 10;"SHOT IS SHORT"
\n6210 GOSUB 6000
\n6220 IF I=1 THEN PRINT TAB 16-(INT (LEN X$+18)/2);X$;" RETRIEVES THE BALL"
\n6225 IF I=2 THEN PRINT TAB 16-(INT (LEN X$+14)/2);X$;" TAKES CONTROL"
\n6230 GOSUB 5100
\n6240 RETURN
\n6300 PRINT TAB 6;"SHOT IS OFF THE RIM"
\n6310 GOSUB 6000
\n6320 PRINT TAB 16-(INT (LEN X$+17)/2);X$;" GETS THE REBOUND"
\n6330 GOSUB 5100
\n6340 RETURN
\n6350 PRINT TAB 9;"SHOT IS BLOCKED"
\n6360 GOTO 6210
\n6400 GOSUB 5900
\n6405 PRINT AT 21,7;"% %P%L%A%Y% %A%G%A%I%N%?% %(%Y%/%N%)% "
\n6410 IF INKEY$="" THEN GOTO 6410
\n6420 IF INKEY$="N" THEN GOTO 6480
\n6430 IF INKEY$="Y" THEN GOTO 6450
\n6440 GOTO 6410
\n6450 CLEAR
\n6451 CLS
\n6452 DIM T$(2,8)
\n6453 DIM M(2)
\n6454 DIM P(2)
\n6455 DIM S(2)
\n6456 DIM X(2)
\n6460 FOR J=1 TO 2
\n6461 LET P(J)=0
\n6462 LET M(J)=0
\n6463 LET S(J)=0
\n6464 LET X(J)=0
\n6465 NEXT J
\n6470 GOTO 9180
\n6480 PRINT AT 21,0;"% % % % %T%H%A%N%K% % %Y%O%U% % %F%O%R% % %P%L%A%Y%I%N%G% % % % "
\n6485 STOP
\n6500 PRINT AT 1,9;"% %S%E%C%O%N%D% %H%A%L%F% "
\n6510 GOSUB 5800
\n6520 RETURN
\n6600 CLS
\n6601 GOSUB 5600
\n6605 IF P(1)=P(2) THEN GOTO 6630
\n6610 PRINT AT 6,13;"% %F%I%N%A%L% "
\n6620 GOSUB 6400
\n6630 PRINT AT 6,11;"% %O%V%E%R%T%I%M%E% "
\n6635 FOR J=1 TO 2
\n6636 LET S(J)=85
\n6637 NEXT J
\n6640 GOSUB 5100
\n6645 PRINT AT 1,11;"% %O%V%E%R%T%I%M%E% "
\n6650 GOSUB 5800
\n6660 GOTO 100
\n6700 CLS
\n6701 GOSUB 5600
\n6705 PRINT AT 6,11;"% %H%A%L%F%T%I%M%E% "
\n6710 GOSUB 5000
\n6715 GOSUB 6500
\n6720 LET S(1)=46
\n6721 LET S(2)=46
\n6730 GOTO 100
\n7000 CLS
\n7010 GOSUB 5295
\n7020 GOSUB 5500
\n7030 RETURN
\n7072 CLS
\n7100 CLS
\n7110 GOSUB 5900
\n7120 RETURN
\n7200 CLS
\n7210 GOSUB 5600
\n7220 RETURN
\n9000 FOR J=0 TO 9
\n9002 PRINT AT J,12;" "
\n9004 PRINT AT J+1,12;"STRATEGY"
\n9006 NEXT J
\n9010 FOR J=1 TO 9
\n9012 PRINT AT 10-J,12-J;"STRATEGY"
\n9014 NEXT J
\n9020 PRINT AT 10,11;"% %S%T%R%A%T%E%G%Y% "
\n9030 FOR J=21 TO 12 STEP -1
\n9032 PRINT AT J,11;" "
\n9034 PRINT AT J-1,11;"BASKETBALL"
\n9036 NEXT J
\n9040 FOR J=1 TO 9
\n9042 PRINT AT 11+J,11+J;"BASKETBALL"
\n9044 NEXT J
\n9050 PRINT AT 11,10;"% %B%A%S%K%E%T%B%A%L%L% "
\n9060 LET Z$=" % % %M%O%U%N%T%A%I%N%E%E%R% % %S%O%F%T%W%A%R%E% % % %1%9%8%4% % "
\n9061 FOR J=1 TO 32
\n9062 PRINT AT 21,0;Z$( TO 32)
\n9063 LET Z$=Z$(2 TO LEN Z$)+Z$(1)
\n9064 NEXT J
\n9070 PRINT AT 0,0;"\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##\##"
\n9071 FOR J=1 TO 20
\n9072 PRINT AT J,0;"\##"
\n9073 PRINT AT J,31;"\##"
\n9074 NEXT J
\n9080 PAUSE 180
\n9090 CLS
\n9100 PRINT
\n9102 PRINT TAB 4;"IN % %S%T%R%A%T%E%G%Y% %B%A%S%K%E%T%B%A%L%L% ,"
\n9104 PRINT "YOU WILL TEST YOUR COACHING"
\n9106 PRINT "SKILLS AGAINST THE COMPUTER."
\n9110 PRINT
\n9120 PRINT TAB 4;"HERE ARE THE OFFENSIVE PLAYS"
\n9122 PRINT "AVAILABLE:"
\n9130 GOSUB 5200
\n9140 GOSUB 5000
\n9150 PRINT
\n9152 PRINT TAB 4;"BOTH TEAMS WILL USE THE"
\n9154 PRINT "DEFENSE YOU CHOOSE."
\n9160 PRINT
\n9170 PRINT TAB 4;"YOUR OPTIONS ARE:"
\n9180 GOSUB 5300
\n9182 PRINT AT 21,4;"% %C%H%O%O%S%E% %Y%O%U%R% %D%E%F%E%N%S%E% "
\n9184 GOSUB 5499
\n9190 GOSUB 5000
\n9200 PRINT
\n9202 PRINT "NAME OF HOME TEAM:"
\n9204 PRINT AT 4,5;"(MAXIMUM OF 8 LETTERS)"
\n9206 INPUT H$
\n9208 IF LEN H$>8 THEN GOTO 9206
\n9210 PRINT AT 1,23;H$
\n9212 LET T$(1)=H$
\n9214 PRINT "NAME OF VISITING TEAM:"
\n9216 INPUT V$
\n9218 IF LEN V$>8 THEN GOTO 9206
\n9220 PRINT AT 2,23;V$
\n9222 LET T$(2)=V$
\n9230 GOSUB 5100
\n9240 PRINT AT 1,10;"% %F%I%R%S%T% %H%A%L%F% "
\n9250 GOSUB 5800
\n9260 GOTO 100
\n9900 SAVE "1024%0"
\n9910 RUN