Championship Boxing


Although we say it ourselves, this program is very close to being a masterpiece. Let's face it, you're never going to make it into the ring, but the hours you spend keying-in programs amount to a great deal; of repressed aggression. So here's your chance to take on the boxing champions of the world without stirring from your armchair. The program offers you a bird's eye view of a boxing ring and the opportunity to go three rounds with an opponent of your choice. You only score points if you manage to connect with the head, and a KO is possible if your strategy's slick enough.

    1  REM**BOXING** *BBC VERSION*
    2  REM @ PAUL STANLEY,CONVERTED BY IAN TH
OMAS
   10 MODE7
   20 S1=0:S2=0
   30 GOSUB820
   40 GOSUB1090
   50 R=1
   60 GOSUB1180
   70 GOSUB1250
   80 PRINTTAB(2,17);R
   90 SOUND1,-1,172,5:FORI=0TO600:NEXT:SOUND1
,-15,172,5
  100 Y=2:X=7:Y1=Y:X1=X
  110 G=23:F=17:F1=F:G1=G
  120 TIME=0
  130 E=0
  140 PRINTTAB(X1,Y1)"  "TAB(X1,Y1+1)" "TAB(X
1,Y1+2)"  ":COLOUR1:PRINTTAB(X,Y)CHR$224;CHR$
226:COLOUR130:PRINTTAB(X,Y+1)CHR$227:COLOUR12
8:PRINTTAB(X,Y+2)CHR$228;CHR$230:Y1=Y:X1=X
  150 PRINTTAB(G1,F1)"  "TAB(G1+1,F1+1)" "TAB
(G1,F1+2)"  "TAB(G,F)CHR$231;CHR$232:COLOUR13
1:PRINTTAB(G+1,F+1)CHR$227:COLOUR128:PRINTTAB
(G,F+2)CHR$233;CHR$234:F1=F:G1=G:COLOUR2
  160 IF TIME>3000 THEN 990
  170 PRINTTAB(27,17);(300-(TIME DIV 10))/100
  180 IFINKEY(-98) GOSUB 320
  190 IFINKEY(-67) GOSUB 380
  200 IFG=X+1 IF RND(1)>SK GOSUB440
  210 Y=Y+(INKEY(-58) AND Y>2)-(INKEY(-42) AN
D Y<17)
  220 X=X+(INKEY(-26) AND X>7)-(INKEY(-122) A
ND X<22)
  230 F=F+RND(5)-3-(F<Y)+(F>Y)
  240 IFF<2 F=2
  250 IFF>17 F=17
  260 G=G+RND(5)-3-(G<X+2)+(G>X+2)
  270 IFG<X+1 G=X+1
  280 IFG>23 G=23
  290 IFE=0 ANDX>20 E=1
  300 IF E>0 E=E+1+(X<20):IFE>9 GOSUB560
  310 GOTO140
  320 COLOUR1:PRINTTAB(X+1,Y)CHR$225;CHR$226
  330 SOUND0,-15,6,2:FORI=0TO200:NEXT
  340 PRINTTAB(X+1,Y)CHR$226;CHR$32:COLOUR2
  350 IFY=F+1 AND X=G-1 S1=S1+1:PRINTTAB(2,8)
;S1
  360 IFS1=K2 GOTO620
  370 RETURN
  380 COLOUR1:PRINTTAB(X+1,Y+2)CHR$229;CHR$23
0
  390 SOUND0,-15,6,2:FORI=0TO200:NEXT
  400 PRINTTAB(X+1,Y+2)CHR$230;CHR$32:COLOUR2
  410 IFY=F-1 AND X=G-1 S1=S1+1:PRINTTAB(2,8)
;S1
  420 IFS1=K2 GOTO620
  430 RETURN
  440 COLOUR1:IFF<Y GOTO510
  450 PRINTTAB(G-1,F)CHR$231;CHR$225
  460 SOUND0,-15,5,2:FORI=0TO200:NEXT
  470 PRINTTAB(G-1,F)" "CHR$135
  480 IFF=Y+1 S2=S2+1
  490 COLOUR2:PRINTTAB(28,8);S2:IFS2=K1 THEN 
650
  500 RETURN
  510 PRINTTAB(G-1,F+2)CHR$233;CHR$229
  520 SOUND0,-15,5,2:FORI=0TO200:NEXT
  530 PRINTTAB(G-1,F+2)" "CHR$233
  540 IFF=Y-1 S2=S2+1
  550 GOTO490
  560 PRINTTAB(X1,Y1)"  "TAB(X1,Y1+1)" "TAB(X
1,Y1+2)"  "
  570 FORX=19TO12 STEP-1:X1=X
  580   COLOUR1:COLOUR128:PRINTTAB(X1,Y1)CHR$
224;CHR$226;TAB(X1,Y1+2)CHR$228;CHR$230:COLOU
R1:COLOUR130:PRINTTAB(X1,Y1+1)CHR$227;:COLOUR
128:PRINT" ";TAB(X1+2,Y1)CHR$231" "TAB(X1+2,Y
1+2)CHR$234" "
  590   NEXTX
  600 PRINTTAB(X1+2,Y1)" "TAB(X1+2,Y1+1)" "TA
B(X1+2,Y1+2)" "
  610 E=0:RETURN
  620 COLOUR1:PRINTTAB(G,F)CHR$241;CHR$231;CH
R$232;TAB(G,F+2)CHR$243;CHR$233;CHR$234:COLOU
R3:PRINTTAB(G,F+1)CHR$242;:COLOUR129:PRINT"  
";:COLOUR1:COLOUR130:PRINTCHR$227
  630  PRINTTAB(7,1)"Well boxed- a K.O."
  640 GOTO670
  650 COLOUR1:PRINTTAB(X-1,Y)CHR$224;CHR$225;
CHR$238;TAB(X-1,Y+2)CHR$228;CHR$230;CHR$240:C
OLOUR1:COLOUR130:PRINTTAB(X-2,Y+1)CHR$227;:CO
LOUR129:PRINT"  ";:COLOUR3:COLOUR128:PRINTCHR
$239
  660  PRINTTAB(7,1)"Badluck- a K.O."
  670 FORF=1TO1500:NEXTF
  680 CLS:IFK1=S2 OR S2>S1 GOTO730
  690 PRINT"Well done! You beat ";B$;" in"';R
;" rounds."
  700 PRINT"You scored ";S1" points"'B$" scor
ed ";S2" points."
  710 PRINT"I suggest you try a tougher     o
pponent."
  720 GOTO760
  730 PRINT"Bad luck! You were beaten in ";R'
"rounds."
  740 PRINT"You scored ";S1" points"'B$;" sco
red ";S2" points."
  750 PRINT"I suggest you try a weaker      o
pponent."
  760 PRINT"Here's your choice:":RESTORE850:P
RINT:FORF=1TO10:READA$:PRINT"     ";F"..."A$:
NEXTF:*FX15
  770 PRINT"Enter your opponent's number"'"or
 0 if you've had enough."
  780 INPUTX:IF X=0 END
  790 CLS:RESTORE850:FORF=1TOX:READA$:NEXTF:B
$=LEFT$(A$,6):PRINT'''"Ok - you shall fight "
B$:PRINTTAB(0,20)"Press Space to start the bo
ut."
  800 REPEAT:UNTILGET=32:CLS
  810 S1=0:S2=0:SK=(11-X)/12:K2=9+X+RND(6):K1
=15-X+RND(10):GOTO50
  820 RESTORE850
  830 PRINTTAB(0,20)"Enter your name (up to 6
 letters)":INPUTC$:IFLEN(C$)>6 GOTO830
  840 CLS:GOTO860
  850 DATA Henry Hopeless,Arnold Awful,Nigel 
No-Good,Philip Fair,Andrew Average,Roger Righ
t-Hook,Brian Brick-Wall,Simon Super,Edward Ex
cellent,Flynn Fantastic
  860 PRINT'CHR$141;CHR$&84;CHR$157;CHR$&86" 
     Championship Boxing         "CHR$156'CHR
$141;CHR$&84;CHR$157;CHR$&86"      Championsh
ip Boxing         "CHR$156
  870 PRINT''CHR$&81" So you want to be a cha
mpion,do you?"'CHR$&81" If so,this is the gam
e for you."
  880 PRINT''CHR$&83" Which opponent do you w
ish to fight"'CHR$&83" first?"''
  890 FORF=1TO10:READA$:PRINTCHR$&85" ";F;"..
.";A$:NEXTF
  900 INPUTTAB(0,24)X:IFX<1 OR X>10 GOTO900
  910 SK=(11-X)/12
  920 K2=9+X+RND(6):K1=15-X+RND(10)
  930 RESTORE850:FORF=1TOX:READA$:NEXTF:B$=LE
FT$(A$,6)
  940 CLS:PRINT'''CHR$&86"Very well,your oppo
nent will be "'CHR$&83;A$'CHR$&86"Each bout i
s only three rounds. Move"'CHR$&86"around the
 ring using the cursor keys"'CHR$&86"and punc
h with 'Z' (left hand) and 'X'"'CHR$&86"(righ
t hand)."
  950 PRINT'CHR$&81"Only punches to the head 
score"
  960 PRINTTAB(0,22)CHR$136;CHR$&82"Press Spa
ce to start the bout."
  970 REPEATUNTILGET=32
  980 RETURN
  990 PRINTTAB(27,17)"0.00"
 1000 SOUND1,-1,172,5:FORI=0TO200:NEXT:SOUND1
,-1,172,5
 1010 R=R+1:IFR=4 R=3:GOTO680
 1020 PRINTTAB(0,22)"Prepare to fight the nex
t round":COLOUR2:COLOUR128:PRINTTAB(7,2)CHR$2
27;TAB(24,19)CHR$227:FORI=1TO20
 1030   Y=Y+(Y>2):X=X+(X>7)
 1040   PRINTTAB(X1,Y1)"  "TAB(X1,Y1+1)" "TAB
(X1,Y1+2)"  ":COLOUR1:PRINTTAB(X,Y)CHR$224;CH
R$226:COLOUR130:PRINTTAB(X,Y+1)CHR$227:COLOUR
128:PRINTTAB(X,Y+2)CHR$228;CHR$229:Y1=Y:X1=X
 1050   F=F-(F<17):G=G-(G<23)
 1060   PRINTTAB(G1,F1)"  "TAB(G1+1,F1+1)" "T
AB(G1,F1+2)"  "TAB(G,F)CHR$231;CHR$232:COLOUR
131:PRINTTAB(G+1,F+1)CHR$227:COLOUR128:PRINTT
AB(G,F+2)CHR$233;CHR$234:F1=F:G1=G:COLOUR2
 1070   IFY=2 AND X=7 AND F=17 AND G=23 GOSUB
1250:FORF=-1TO2:PRINTTAB(X1,Y1+F)" ":NEXTF:PR
INTTAB(0,22)STRING$(30," ");:GOTO80
 1080   NEXTI
 1090 RESTORE1100:F=0:G=255:FORY=224TO243:VDU
23,Y:FORI=0TO7:READX:VDUX:NEXT,
 1100   DATA0,63,127,255,255,252,254,254,0,25
5,255,255,255,0,0,0,28,254,254,254,254,28,0,0
 1110   DATA195,129,0,0,0,0,129,195,254,254,2
52,255,255,127,63,0,0,0,0,255,255,255,255,0
 1120   DATA0,0,28,254,254,254,254,28,56,127,
127,127,127,56,0,0
 1130   DATA0,252,254,255,255,63,127,127,0,0,
56,127,127,127,127,56,127,127,63,255,255,254,
252,0
 1140   DATA66,129,157,165,165,94,66,60,60,60
,24,24,60,126,255,255,108,108,108,40,40,40,40
,108
 1150   DATA28,30,15,15,31,62,126,252,248,240
,240,224,224,240,240,248,252,126,62,31,15,15,
30,28
 1160   DATA56,120,240,240,248,124,126,63,31,
15,15,7,7,15,15,31,63,126,124,248,240,240,120
,56
 1170   RETURN
 1180   MODE1:GCOL0,3:VDU28,4,27,35,4,24,128;
128;1151;895;29,128;192;
 1190   FORF=0TO63STEP8:PLOT69,220-F,60-F:PLO
T1,0,580+2*F:PLOT1,580+2*F,0:PLOT1,0,-2*F-580
:PLOT1,-2*F-580,0:NEXT
 1200   PRINTTAB(6,1)" "TAB(25,1)" "TAB(6,20)
" "TAB(25,20)" "
 1210   PRINTTAB(0,4)C$;TAB(26,4)B$
 1220   COLOUR2:PRINTTAB(0,6)"POINTS"TAB(0,15
)"ROUND"TAB(27,15)"TIME"TAB(26,6)"POINTS"
 1230   PRINTTAB(2,8);S1;TAB(28,8);S2
 1240   RETURN
 1250   Y1=16:X1=9:RESTORE1260:FORF=1TO4:READ
Y,X
 1260     DATA0,1,-1,0,0,-1,1,0
 1270     FORE=1TO12:PRINTTAB(X1,Y1)CHR$235;T
AB(X1,Y1+1)CHR$236;TAB(X1,Y1+2)CHR$237:COLOUR
129:COLOUR3:PRINTTAB(X1,Y1-1);R:COLOUR128:COL
OUR2
 1280       FORO=0TO100:NEXT
 1290       IFE=12 FORO=125TO135:SOUND1,-15,O
,1:NEXT:FORO=135TO125:SOUND1,-15,O,1:NEXT:FOR
O=0TO500:NEXT
 1300       PRINTTAB(X1,Y1)" "TAB(X1,Y1+1)" "
TAB(X1,Y1+2)" "TAB(X1,Y1-1)" "
 1310       Y1=Y1+Y:X1=X1+X:NEXTE,F
 1320     RETURN