home *** CD-ROM | disk | FTP | other *** search
/ The Glitch Apple Disk Collection / 2014.glitch.apple.collection.zip / indexed / COMPKARA.DSK / P16.bas < prev    next >
BASIC Source File  |  2014-09-09  |  10KB  |  101 lines

  1. 0  POKE 8101,1: POKE 8102,64:::::
  2. 10  REM (C) 1984 E. BADASOV
  3. 11  REM COMPETITION KARATE
  4. 21  ONERR  GOTO 19000
  5. 22  PRINT D$"BLOADUL.2,D1"
  6. 23  GOTO 11200
  7. 80 G%(T%) =  FN PD(T%): HTAB H1%(T%): PRINT G%(T%);:G%(D%) =  FN PD(D%): HTAB H1%(D%): PRINT G%(D%);: RETURN 
  8. 100  GOSUB 500: VTAB VT%: HTAB H1%(NC%):G%(NC%) =  FN PD(NC%): PRINT G%(NC%);: IF  PEEK(G1%(T%)) >A2%  THEN  RETURN 
  9. 105  FOR I = 1 TO  ABS(Z%): HTAB H1%(NC%): VTAB VT%:G%(NC%) =  FN PD(NC%): PRINT G%(NC%);: IF  PEEK(KP%) = DM%(NC%)  OR (CD%  AND  RND(E) <.6)  THEN  GOSUB 1250: IF ZF%  THEN  POP : GOTO 1065
  10. 110  IF  PEEK(G1%(T%)) >A2%  OR (T% = CM%  AND  RND(E) <.7)  THEN  HTAB H1%(CM%): VTAB VT%: PRINT G%(CM%): POP : GOTO 1055
  11. 115  NEXT : RETURN 
  12. 120  VTAB VT%: GOSUB 80: IF  PEEK(G1%(T%)) >A2%  THEN  RETURN 
  13. 125  VTAB VT%: FOR I = 1 TO  ABS(Z%): GOSUB 80: IF  PEEK(KP%) = DM%(D%)  OR  PEEK(KP%) = DM%(T%)  THEN  GOSUB 1250: IF ZF%  THEN  POP : GOTO 1065
  14. 130  IF  PEEK(G1%(T%)) >A2%  THEN  POP : GOTO 1055
  15. 135  NEXT : RETURN 
  16. 500 CD% = PT%(NC%) -PT%(CM%) >2  AND RD - RND(E) *4 >0  AND  RND(E) <.3  AND T% < >CM%: IF T% = CM%  OR CD%  THEN 540
  17. 510  IF  RND(E) <.6  AND P1% <9  THEN G%(CM%) = 5: RETURN 
  18. 520 G%(CM%) = 4: IF  RND(E) *S8%(NC%) +1 >AB%(7,NC%)  THEN G%(CM%) = 6
  19. 530  IF  RND(E) <.9  THEN  RETURN 
  20. 540  IF WC%(CM%)  OR CD%  OR (S1%(CM%) >0  AND  RND(E) <.9)  OR  RND(E) *7 <PT%(NC%) -PT%(CM%)  OR S1%(CM%) -S1%(NC%) >30  THEN 550
  21. 541 G%(CM%) = 5: IF (S1%(CM%) <0  AND PT%(CM%) >PT%(NC%) +2)  OR  RND(E) <.35  THEN  RETURN 
  22. 542  IF S1%(CM%) <Q%(3)  AND (PT%(CM%) >PT%(NC%)  OR  RND(E) <.8)  THEN  RETURN 
  23. 544  IF S1%(CM%) <Q%(2)  AND (S1%(NC%) >Q%(3)  OR  RND(E) <.8)  THEN  RETURN 
  24. 550 K% =  RND(E) *S8%(CM%) +1 >AB%(7,CM%):B% = S1%(NC%) < -60  OR  RND(E) *S9%(NC%) +1 >AB%(6,NC%):G%(CM%) = S0%(B%,K%, RND(E) *2): IF  RND(E) <.3  THEN G%(CM%) =  RND(E) *3 +6 *K% +1
  25. 555  IF G%(CM%) >6  AND S1%(CM%) <Q%(2)  AND  RND(E) <.7  THEN G%(CM%) =  RND(E) *3 +1
  26. 560  RETURN 
  27. 570  FOR I = 1 TO 3:S =  PEEK(V2%) - PEEK(V2%): FOR J = 1 TO 25:S =  PEEK(V2%) - PEEK(V2%): NEXT J,I: RETURN 
  28. 580  GOSUB 600: VTAB S7%: HTAB PD% +1 +T% *2: PRINT DM$(T%,X1%): VTAB S4%: SPEED= A1%: RETURN 
  29. 590  SPEED= A0%: VTAB S7%: HTAB PD% +D% *5 -3 *(X% >12  AND   NOT D%): PRINT DM$(D%,X%): VTAB S4%: SPEED= A1%: RETURN 
  30. 600  SPEED= A0%: VTAB S7%: HTAB PD% +T% *3: PRINT DM$(T%,0): RETURN 
  31. 610  SPEED= A0%: FOR I = T% TO D%  STEP D% -T%: VTAB S7%: HTAB PD% +4 *I +(I -1): PRINT DM$(I,0);: NEXT : RETURN 
  32. 911  VTAB VT%: HTAB H1%(0) -3: PRINT X2$;: HTAB H1%(1) +2: PRINT X2$: RETURN 
  33. 915  IF S1%(D%) <AB%(4,D%) -5  THEN X% = D%: GOSUB 922:S1%(D%) = S1%(D%) -5
  34. 916  RETURN 
  35. 922 S1%(X%) =  FN S5(X%): IF S1%(X%) >AB%(4,X%)  THEN S1%(X%) = AB%(4,X%)
  36. 923  RETURN 
  37. 930 CM% = T%:NC% = D%: GOSUB 500:CM% = D%:NC% = T%: GOSUB 500: VTAB VT%: HTAB H1%(NC%): PRINT G%(NC%);: HTAB H1%(CM%): PRINT G%(CM%): IF CD%  AND  RND(E) <.7  THEN X1% = D%: GOSUB 1257: POP : GOTO 1065
  38. 932  IF  RND(E) <.8  THEN  POP : GOTO 1055
  39. 933  RETURN 
  40. 950  POKE KB%,0: POKE 6,46: POKE 7,3: CALL S3%: RETURN 
  41. 1005  GOSUB 13015: FOR RD = 1 TO 3: GOSUB 13505: FOR I = 0 TO 1:KF%(I,P) = 0:WC%(I) = 0:RC%(I) = 0: NEXT : PRINT HO$: VTAB 21: HTAB 15: PRINT "<CTRL-I><CTRL-K> ROUND  ";RD;" <CTRL-N><CTRL-L>"
  42. 1020 TE% = 4: GOSUB 9990: PRINT HO$: VTAB 21: HTAB 13: PRINT "<CTRL-I><CTRL-K> B E G I N ! <CTRL-N><CTRL-L>";S4$:TE% = 1: GOSUB 9990: GOSUB 9105: POKE KB%,0
  43. 1030 PD% = 16:P1% = 4: GOSUB 911: VTAB VT%:T% = 0:D% = 1: GOSUB 80:ZF% = 0: GOSUB 12700:E = 1: FOR Z = 1 TO  RND(E) *7 +16: GOSUB 610:S5% =  RND(E) *2:S6% =  RND(E) *3: IF ZF%  THEN  GOSUB 911:ZF% = 0
  44. 1031  IF (P1% <1  OR P1% >9)  AND  RND(E) >.85  THEN  VTAB S4%: POKE 6,24: POKE 7,90: CALL S3%:X% = 0 +(PD% >16):PX%(X%) = PX%(X%) +5: GOSUB 11100
  45. 1035 Z% =  FN AD(0) + FN WA(0) - FN AD(1) - FN WA(1): IF  RND(E) * ABS(Z%) <2  THEN Z% =  -Z%/2
  46. 1040  IF Z% >0  THEN  VTAB VT%: HTAB H1%(0) -3: PRINT X0$:T% = 0:D% = 1: ON CP% GOSUB 120,100,930: GOSUB 911: GOTO 1050
  47. 1045  IF Z% <0  THEN  VTAB VT%: HTAB H1%(1) +2: PRINT X1$:T% = 1:D% = 0: ON CP% GOSUB 120,100,930: GOSUB 911
  48. 1050 Z% = Z% + RND(E) *16 -8: GOTO 1040
  49. 1055  POKE KB%,0: GOSUB 911: SPEED= A1%: IF G%(T%) >3  AND G%(T%) <7  THEN X% = T%: GOSUB 922:X% = D%: GOSUB 922: VTAB S4%: PRINT : PRINT LR$(2): GOSUB 9105: GOSUB 1200: GOTO 1080
  50. 1065  POKE KB%,0:X1% = G%(T%) -3 *(G%(T%) >6):P1% =  ABS(21 -PD% -10 *D%): IF P1% <10  THEN PD% = PD% +(1 -T% *2) *( ABS(Z%) >39):P1% =  ABS(21 -PD% -10 *D%)
  51. 1066  GOSUB 610: GOSUB 580: VTAB S4%: PRINT : PRINT NA$(T%,P)SP$OF$(G%(T%),S5%):RC%(T%) = RC%(T%) -2:WC%(T%) = WC%(T%) -1 *(WC%(T%) >0): IF RC%(T%) <0  THEN RC%(T%) = 0
  52. 1068  IF G%(D%) = 5  AND P1% <10  THEN  IF  RND(E) *(S1%(T%) -2 *AB%(3,D%) +S1%(D%)) <S1%(D%)  AND  RND(E) <RT(P1%)  THEN  GOSUB 915: GOSUB 1100: GOSUB 9105: GOTO 1080
  53. 1070  IF  RND(E) *(AB%(2,T%) +6 + ABS(S1%(T%)) *(S1%(T%) <0)) >AB%(2,T%)  THEN  POKE 6,255: POKE 7,6: CALL S3%:S1%(T%) = S1%(T%) -(AK%(X1%,9)/2) *(3 *ZF% +1): PRINT FU$(S6%): GOSUB 915: GOSUB 9105: GOSUB 600: GOTO 1080
  54. 1075  GOSUB 1300: GOSUB 1400: GOSUB 600
  55. 1080  NEXT : SPEED= A0%: PRINT HO$: VTAB 21: HTAB 13: PRINT "<CTRL-I><CTRL-K> END OF ROUND <CTRL-L><CTRL-N>"S4$:TE% = 2: GOSUB 9990: FOR I = 0 TO 1:X% = I: FOR K = 1 TO 3: GOSUB 922: NEXT K,I:X =  FRE(0): NEXT RD: RETURN 
  56. 1100  SPEED= A0%: FOR J = 2 TO 3 -(P1% >7): VTAB S7%: HTAB PD% +2 *D% +(D% -J *( -2 *(D% = 1) +1)): PRINT DM$(D%,0);: NEXT : SPEED= A1%
  57. 1105  VTAB S4%: HTAB 1: PRINT "BUT "NA$(D%,P)RE$(S6%):S1%(T%) = S1%(T%) -(AK%(X1%,9)/2) *(3 *ZF% +1)
  58. 1110  SPEED= A0%:J = 2: VTAB S7%: HTAB PD% +2 *D% +(D% -J *( -2 *(D% = 1) +1)): PRINT DM$(D%,0);: SPEED= A1%:PD% = PD% +(1 -T% *2): RETURN 
  59. 1200  IF WC%(T%)  AND  INT( RND(E) *9) <RC%(T%)  AND PT%(T%) > = PT%(D%)  THEN  VTAB S4%: PRINT : PRINT S4$"<CTRL-K>^^^ A POINT HAS BEEN DEDUCTED FROM": PRINT NA$(T%,P)"<CTRL-K>'S SCORE.  MIX IT UP!!<CTRL-L>":PT%(T%) = PT%(T%) -1:RC%(T%) = RC%(T%) -2
  60. 1201 RC%(T%) = RC%(T%) +1 *(S1%(T%) > -40): IF WC%(T%)  OR PT%(T%) <PT%(D%)  OR S1%(T%) < -40  OR RC%(T%) < INT( RND(E) *4) +2  THEN  RETURN 
  61. 1205  VTAB S4%: PRINT : PRINT S2$"<CTRL-K>*** THE JUDGES WARN "NA$(T%,P): PRINT "<CTRL-K>MIX IT UP, OR A POINT WILL BE         DEDUCTED FROM YOUR SCORE!<CTRL-L>!":WC%(T%) = WC%(T%) +2: RETURN 
  62. 1250 X% =  PEEK(KP%): POKE KB%,0: IF CP% = 2  THEN  HTAB H1%(CM%): VTAB VT%: PRINT G%(CM%): IF CD%  THEN X% = DM%(CM%)
  63. 1251  IF X% < >DM%(T%)  AND X% < >DM%(D%)  THEN ZF% = 0:CD% = 0: RETURN 
  64. 1253 X1% = 1: IF X% = DM%(0)  THEN X1% = 0
  65. 1255  IF G%(X1%) >3  AND G%(X1%) <7  THEN ZF% = 0:CD% = 0: RETURN 
  66. 1257 T% = X1%:D% =   NOT T%: GOSUB 911: VTAB VT%: HTAB H1%(T%) +( -3 +T% *5): PRINT X3$:ZF% = 1:Z% = 40: SPEED= A1%: VTAB S4%: PRINT : PRINT "<CTRL-S>CHARGING WILDLY AT "NA$(D%,P)",";
  67. 1259  RETURN 
  68. 1300 X% = 0:Y% = 0: FOR I = 2 TO 8:X% = X% +AB%(I,T%) *AK%(X1%,I):Y% = Y% +AB%(I,D%) *DS%(X1%,I): NEXT :X% = X% +AB%(6,T%) *ZF% +HW%(T%) +2 *S1%(T%) + FN OB(6 -2 *(X1% >3)):Y% = Y% +2 *S1%(D%) + FN DB(4 +2 *(X1% >3))
  69. 1301 Z% = X% -Y%:Z% = Z% *(1 +(( RND(E) <.2) * -2)):X% =  INT( RND(E) *10) *10: RETURN 
  70. 1400  FOR I = 2 TO 4: IF X% +Z% >BM%(X1%,I)  THEN  ON I -1 GOTO 8090,8010,8030
  71. 1402  NEXT 
  72. 8010  PRINT MI$(S6%): GOSUB 9100: RETURN 
  73. 8030  POKE 6,110: POKE 7,15: CALL S3%: POKE 6,130: POKE 7,20: CALL S3%: PRINT BL$(S6%):PX%(D%) =  FN DE(BX%(X1%,4)): GOSUB 9100: RETURN 
  74. 8090  IF  RND(E) *100 > = BM%(X1%,1)  THEN 8130
  75. 8110 X% = 8: GOSUB 590:PT%(T%) =  FN PT(T%): POKE 6,75: POKE 7,15: CALL S3%: POKE 6,50: POKE 7,20: CALL S3%: POKE 6,25: POKE 7,20: CALL S3%: VTAB S4%: PRINT HS$(S6%,1)NA$(D%,P)HS$(S6%,2):PX%(T%) =  FN AE(BX%(X1%,1))
  76. 8113 X% =  FN HI(6): IF X% >0  THEN X% =  RND(E) *X% +1:S1%(D%) =  FN DA(X%)
  77. 8115  IF X% >9  AND X% <31  THEN  GOSUB 570:PX%(T%) =  FN AE(3): PRINT "THAT SENT "NA$(D%,P)" REELING!!"
  78. 8117  IF (S1%(D%) < =  -90  AND  RND(E) <.15  AND X% >17)  OR S1%(D%) < -169  THEN X% = 13: GOSUB 590: GOSUB 600: VTAB S4%: PRINT S2$"<CTRL-I>"NA$(D%,P)"<CTRL-K> IS KNOCKED OUT!!<CTRL-L><CTRL-N>":PX%(T%) =  FN AE(10):KF%(T%,P) = 1:TE% = 8: GOSUB 9990: POP : RETURN 
  79. 8118  GOSUB 9200: GOSUB 9300: GOSUB 9100: RETURN 
  80. 8130 X% = 7: GOSUB 590:PT%(T%) =  FN PT(T%): POKE 6,100: POKE 7,15: CALL S3%: POKE 6,70: POKE 7,20: CALL S3%: POKE 6,85: POKE 7,20: CALL S3%: VTAB S4%: PRINT BS$(S6%,1)NA$(D%,P)BS$(S6%,2):PX%(T%) =  FN AE(BX%(X1%,2))
  81. 9005 X% =  FN HI(9): IF X% >0  THEN X% =  RND(E) *X% +1:S1%(D%) =  FN DA(X%)
  82. 9012  IF X% >9  AND X% <31  THEN  GOSUB 570:PX%(T%) =  FN AE(3): PRINT "THAT SHOT STAGGERED "NA$(D%,P)"!!"
  83. 9013  IF Y% >5  THEN  GOSUB 9200
  84. 9015  GOSUB 9300: GOSUB 9100: RETURN 
  85. 9100 S1%(T%) = S1%(T%) -( RND(E) *(16 +5 *(X1% >3)) +AK%(X1%,9)) *(3 *ZF% +1)
  86. 9105  SPEED= A0%:DM%(0) = 218:DM%(1) = 175: FOR J = 0 TO 1: FOR K = 0 TO 4: IF S1%(J) >Q%(K)  THEN  VTAB 8: HTAB 1 +32 *J: PRINT "<CTRL-K>"Q$(K,J)"<CTRL-L>":K = 4: IF S1%(J) < - INT( RND(E) *51 +189)  THEN DM%(J) = 1000
  87. 9140  NEXT K,J: SPEED= A1%: RETURN 
  88. 9200  IF (S1%(D%) < -70  AND  RND(E) <.3)  OR X% >30  THEN X% = 14: GOSUB 590: GOSUB 600: GOSUB 9220: PRINT "<CTRL-I>"NA$(D%,P)"<CTRL-K> IS KNOCKED DOWN!!<CTRL-L><CTRL-N>":PX%(T%) =  FN AE(6):S1%(D%) =  FN DA(X%/2): POP : GOSUB 9300: GOSUB 9100:TE% = 4: GOSUB 9990: GOSUB 11100: POP : GOTO 1080
  89. 9201  RETURN 
  90. 9220  POKE 6,160: POKE 7,90: CALL S3%: POKE 7,90: CALL S3%: VTAB S4%: RETURN 
  91. 9300  IF S1%(T%) > = 0  THEN  IF  RND(E) *(600 -(150 *ZF%)) >1  THEN  RETURN 
  92. 9301  IF S1%(T%) <0  THEN  IF  RND(E) *(1500 -(550 *ZF%)) > ABS(S1%(T%)/3)  THEN  RETURN 
  93. 9305  POKE 6,100: POKE 7,40: CALL S3%: POKE 6,150: CALL S3%
  94. 9310  IF G%(T%) >6  THEN  VTAB S4%: PRINT "<CTRL-I>"NA$(T%,P)LW$(S6%)"<CTRL-N>":X% = 8: GOTO 9320
  95. 9315  VTAB S4%: PRINT "<CTRL-I>"NA$(T%,P)AW$(S6%)"<CTRL-N>":X% = 7
  96. 9320 AB%(X%,T%) = AB%(X%,T%) -( RND(E) *16 +5): IF AB%(X%,T%) <0  THEN AB%(X%,T%) = 0
  97. 9325  FOR I = 1 TO 2:AB%(I,T%) =  FN WO(I): IF AB%(I,T%) <0  THEN AB%(I,T%) = 0
  98. 9326  NEXT :AB%(6,T%) =  FN WO(6): IF AB%(6,T%) <0  THEN AB%(6,T%) = 0
  99. 9328 WD%(T%,P) = 1
  100. 9330 TE% = 6: GOSUB 9990: POP : POP : RETURN 
  101. 9990  FOR I = 1 TO TE% *500: NEXT : RETURN