home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / proglang / ladybug1.arj / BASKET.BUG < prev    next >
Text File  |  1991-01-13  |  4KB  |  200 lines

  1. ; basket.bug - basketball game
  2. to "and  :a :b
  3. if :a = "true [output :b = "true]
  4. output "false
  5. end
  6.  
  7. to "or  :a :b
  8. if :a = "true [output "true]
  9. output :b = "true
  10. end
  11.  
  12. to "while  :condition :list
  13. if ( run :condition ) = "false then stop
  14. run :list
  15. while :condition :list
  16. end
  17.  
  18. to "forever  :list
  19. repeat 32000 :list
  20. forever :list
  21. end
  22.  
  23. to "xor  :a :b
  24. if :a = "true [output :b = "false]
  25. output :b = "true
  26. end
  27.  
  28. to "wait  :seconds
  29. tone 32000  20 * :seconds
  30. tone 32000 1  ;above times the wait; this makes us wait
  31. end
  32.  
  33. to "max  :a :b
  34. if :a > :b [output :a]
  35. output :b
  36. end
  37.  
  38. to "min  :a :b
  39. if :a > :b [output :b]
  40. output :a
  41. end
  42.  
  43. to "teams   
  44. print [Enter Home Team Nickname]
  45. make "ht request
  46. print [Enter Visiting Team Nickname]
  47. make "vt request
  48. score :hs :vs :ht :vt
  49. make "p 0
  50. jump :p
  51. end
  52.  
  53. to "start   
  54. nodraw
  55. make "hs 0
  56. make "vs 0
  57. make "t 0
  58. make "Q 1
  59. teams
  60. end
  61.  
  62. to "foul   
  63. make "x integer random 6
  64. if :x = 0 [print [Three point play!] 3pt :p stop]
  65. if or ( :x = 1 ) ( :x = 2 ) [print [Two shots made] 2pt :p stop]
  66. if or ( :x = 3 ) ( :x = 4 ) [print [One shot made] 1pt :p stop]
  67. if :x = 5 [print [Missed foul shot] rebound stop]
  68. end
  69.  
  70. to "2pt   :P
  71. if :P = 0 [make "vs :vs + 2 score :hs :vs :ht :vt turnover :p stop]
  72. make "hs :hs + 2
  73. score :hs :vs :ht :vt
  74. turnover :p
  75. stop
  76. end
  77.  
  78. to "jump   :P
  79. make "x integer random 3
  80. if :x = 0 [make "P 1 turnover :p stop]
  81. make "P 0
  82. turnover :p
  83. stop
  84. end
  85.  
  86. to "center   
  87. make "x integer random 14
  88. if :x = 0 [print [Basket scored!] 2pt :p stop]
  89. if :x = 1 [print [Foul] foul stop]
  90. if and :x > 1  :x < 4  [print [Lose ball] turnover :p]
  91. fwd
  92. end
  93.  
  94. to "print2   
  95. print []
  96. print []
  97. end
  98.  
  99. to "final   
  100. print [Game Over]
  101. score :hs :vs :ht :vt
  102. end
  103.  
  104. to "fwd   
  105. make "x random 11
  106. if :x < 4 [print [Basket scored!] 2pt :p stop]
  107. if and :x > 3  :x < 6  [print [Shot missed] rebound stop]
  108. if and  :x > 5  :x < 8  [print [Lose ball!] turnover :p stop]
  109. if and  :x > 7  :x < 10  [print [Foul] foul :p stop]
  110. if :x = 10 [print [Forward dribbles - Pass again] timer :t :q stop]
  111. end
  112.  
  113. to "timer   :t :q
  114. make "t ( :t + 1 )
  115. if :T < 7 [pass stop]
  116. if :Q = 4 [final stop]
  117. ( print [End of quarter] :Q )
  118. make "t 0
  119. make "q :q + 1
  120. score :hs :vs :ht :vt
  121. print [Jump ball starts quarter.]
  122. jump :p
  123. stop
  124. end
  125.  
  126. to "guard   
  127. make "x random 14
  128. if :x < 3 [print [Guard dribbles - pass again] timer :t :q stop]
  129. fwd
  130. end
  131.  
  132. to "pass   
  133. print2
  134. print [C - Pass to Center]
  135. print [G - Pass to Guard]
  136. print [F - Pass to Forward]
  137. print2
  138. print [Choose - C G F]
  139. print2
  140. make "x request
  141. if :x = "c then center stop
  142. if :x = "g then guard stop
  143. if :x = "f then fwd stop
  144. print [Type C G or F] pass
  145. end
  146.  
  147. to "3pt   :p
  148. if :p = 0 [make "vs :vs + 3 score :hs :vs :ht :vt turnover :p stop]
  149. make "hs :hs + 3 turnover :p score :hs :vs :ht :vt stop
  150. end
  151.  
  152. to "score   :hs :vs :ht :vt
  153. print2
  154. print se :ht :hs
  155. print se :vt :vs
  156. print2
  157. end
  158.  
  159. to "1pt   :P
  160. if :p = 0 [make "vs :vs + 1 score :hs :vs :ht :vt fsreb stop]
  161. make "hs :hs + 1
  162. score :hs :vs :ht :vt
  163. fsreb
  164. stop
  165. end
  166.  
  167. to "turnover   :P
  168. if :P = 0 [print :ht print [Ball] make "p 1 pass stop]
  169. print :vt
  170. print [Ball]
  171. make "P 0
  172. PASS
  173. stop
  174. end
  175.  
  176. to "rebound   
  177. make "x random 3
  178. if :x < 2 [print [Rebound to defense] turnover :p stop]
  179. print [offense reboundS]
  180. pass
  181. stop
  182. end
  183.  
  184. to "fsreb   
  185. make "x random 2
  186. if :x = 0 [print [Second shot missed] rebound stop]
  187. turnover :p
  188. end
  189.  
  190. make "hs "'0
  191. make "vs "'0
  192. make "t "'0
  193. make "q "'1
  194. make "ht "'Jims
  195. make "vt "'Joes
  196. make "p "'0
  197. make "x "'6
  198. make "description [Basketball - type start to begin ]
  199. print :description
  200.