home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / games2 / tron.zip / TRON.BAS
BASIC Source File  |  1993-05-29  |  6KB  |  277 lines

  1. DEFINT A-Z
  2. DECLARE SUB worm (credits1!, credits2!, x, y, h, f, ff)
  3. DECLARE SUB lost (credits1!, credits2!, d1$, d2$, wins1, wins2)
  4. DECLARE SUB intro (credits1!, credits2!, h, x, y, n1, n2, d1$, d2$, s$, x1, y1, x2, y2, d1, d2, s1, s2)
  5. DECLARE SUB graphics (nn1, n1, nn2, n2, s$, x1, y1, x2, y2)
  6. DECLARE SUB move (nn1, nn2, n1, n2, x1, y1, x2, y2, d1, d2, s1, s2, f1, F2)
  7. DECLARE SUB check (s$, x1, y1, x2, y2, d1, d2, d1$, d2$, p1, P, s1, s2)
  8. SCREEN 12
  9. CLS
  10. LOCATE 5, 30
  11. PRINT "T-R-O-N"
  12. LOCATE 6, 30
  13. PRINT "WRITTEN BY : BEJAY COLE"
  14. LOCATE 8, 30
  15. PRINT "PLAYER 1 (RED)"
  16. LOCATE 9, 30
  17. PRINT "MOVE - UP/DOWN/LEFT/RIGHT CURSOR"
  18. LOCATE 10, 30
  19. PRINT "NITRO - <ENTER> "
  20. LOCATE 12, 30
  21. PRINT "PLAYER 2 (BLUE)"
  22. LOCATE 13, 30
  23. PRINT "UP - H "
  24. LOCATE 14, 30
  25. PRINT "DOWN - N"
  26. LOCATE 15, 30
  27. PRINT "LEFT - B"
  28. LOCATE 16, 30
  29. PRINT "RIGHT - M"
  30. LOCATE 17, 30
  31. PRINT "NITRO - <SPACE>"
  32. LOCATE 21, 30
  33. PRINT "FOR MORE POINTS FORCE THE "
  34. LOCATE 19, 30
  35. PRINT "<ESC> - QUIT"
  36. LOCATE 22, 30
  37. PRINT "PURPLE WORM INTO YOUR TRAIL"
  38.  
  39. LOCATE 25, 30
  40. PRINT "HIT <ENTER> TO CONTINUE"
  41. WHILE INKEY$ <> CHR$(13)
  42. WEND
  43. CLS
  44. LOCATE 5, 10
  45. PRINT "IF YOU ENJOYED PLAYING THIS GAME PLEASE PROMOTE FUTURE RELEASES"
  46. LOCATE 6, 10
  47. PRINT "BY REGISTERING THIS GAME. IT'S YOUR CONTRIBUTATIONS THAT"
  48. LOCATE 7, 10
  49. PRINT "INSPIRE US AUTHORS TO PUBLISH THESE HIGH QUALITY GAMES."
  50. LOCATE 9, 10
  51. PRINT "SEND $10.00 TO:"
  52. LOCATE 10, 10
  53. PRINT "BEJAY COLE"
  54. LOCATE 11, 10
  55. PRINT "P.O. BOX 133"
  56. LOCATE 12, 10
  57. PRINT "EDGEWOOD , N.M. 87015"
  58. LOCATE 15, 10
  59. PRINT "YOU WILL BE NOTIFIED OF ALL NEW RELEASES AND VERSION UPGRADES."
  60. LOCATE 21, 30
  61. PRINT "HIT <ENTER> TO START"
  62. WHILE INKEY$ <> CHR$(13)
  63. WEND
  64.  
  65. CLS
  66. LOCATE 5, 30
  67.  
  68.  
  69. CALL intro(credits1!, credits2!, h, x, y, n1, n2, d1$, d2$, s$, x1, y1, x2, y2, d1, d2, s1, s2)
  70. subs:
  71. CALL graphics(nn1, n1, nn2, n2, s$, x1, y1, x2, y2)
  72. CALL worm(credits1!, credits2!, x, y, h, f, ff)
  73. CALL move(nn1, nn2, n1, n2, x1, y1, x2, y2, d1, d2, s1, s2, f1, F2)
  74. CALL check(s$, x1, y1, x2, y2, d1, d2, d1$, d2$, p1, p2, s1, s2)
  75. IF d1$ = "lost" OR d2$ = "lost" THEN
  76.     CALL lost(credits1!, credits2!, d1$, d2$, wins1, wins2)
  77.     CALL intro(credits1!, credits2!, h, x, y, n1, n2, d1$, d2$, s$, x1, y1, x2, y2, d1, d2, s1, s2)
  78. END IF
  79. GOTO subs
  80.  
  81. SUB check (s$, x1, y1, x2, y2, d1, d2, d1$, d2$, p1, p2, s1, s2)
  82. xx1 = x1
  83. yy1 = y1
  84. xx2 = x2
  85. yy2 = y2
  86. IF d1 = 1 THEN cx1 = -1
  87. IF d1 = 2 THEN cx1 = 1
  88. IF d1 = 11 THEN cy1 = -1
  89. IF d1 = 12 THEN cy1 = 1
  90. IF d2 = 1 THEN cx2 = -1
  91. IF d2 = 2 THEN cx2 = 1
  92. IF d2 = 11 THEN cy2 = -1
  93. IF d2 = 12 THEN cy2 = 1
  94. p1 = p1 + 1
  95. IF p1 < s1 THEN GOTO leftmove
  96. p1 = 0
  97. x1 = x1 + cx1
  98. y1 = y1 + cy1
  99.  
  100. leftmove:
  101. p2 = p2 + 1
  102. IF p2 < s2 THEN GOTO after
  103. p2 = 0
  104. x2 = x2 + cx2
  105. y2 = y2 + cy2
  106. after:
  107. c1 = POINT(x1, y1)
  108. IF c1 <> 0 THEN d1$ = "lost"
  109.  
  110.  
  111.  
  112. c2 = POINT(x2, y2)
  113. IF c2 <> 0 THEN d2$ = "lost"
  114.  
  115.  
  116.  
  117.  
  118. IF x1 = xx1 AND y1 = yy1 THEN d1$ = ""
  119. IF x2 = xx2 AND y2 = yy2 THEN d2$ = ""
  120.  
  121.  
  122. END SUB
  123.  
  124. SUB graphics (nn1, n1, nn2, n2, s$, x1, y1, x2, y2)
  125. PSET (x1, y1), 4
  126. PSET (x2, y2), 1
  127. IF nn1 = n1 THEN GOTO middle
  128. COLOR 4
  129. LOCATE 1, 45
  130. PRINT "NITROS-"; n1
  131. middle:
  132. IF nn2 = n2 THEN GOTO last
  133. COLOR 1
  134. LOCATE 1, 65
  135. PRINT "NITROS-"; n2
  136. last:
  137. END SUB
  138.  
  139. SUB intro (credits1!, credits2!, h, x, y, n1, n2, d1$, d2$, s$, x1, y1, x2, y2, d1, d2, s1, s2)
  140. LINE (2, 21)-(639, 462), 0, BF
  141. LINE (1, 20)-(639, 463), 5, B
  142. d1$ = ""
  143. d2$ = ""
  144. s$ = "ON"
  145. n1 = n1 + INT(credits1! / 300)
  146. n2 = n2 + INT(credits2! / 300)
  147. credits1! = credits1! - (INT(credits1! / 300) * 300)
  148. credits2! = credits2! - (INT(credits2! / 300) * 300)
  149.  
  150. h = 6001
  151. COLOR 4
  152. LOCATE 1, 45
  153. PRINT "NITROS-"; n1
  154. COLOR 1
  155. LOCATE 1, 65
  156. PRINT "NITROS-"; n2
  157. x1 = 50
  158. y1 = 275
  159. x2 = 600
  160. y2 = 275
  161. d1 = 2
  162. d2 = 1
  163. s1 = 5
  164. s2 = 5
  165. x = 325
  166. y = 275
  167.  
  168. END SUB
  169.  
  170. SUB lost (credits1!, credits2!, d1$, d2$, wins1, wins2)
  171. IF d1$ = "lost" THEN wins2 = wins2 + 1: credits2! = credits2! + 1000
  172. IF d2$ = "lost" THEN wins1 = wins1 + 1: credits1! = credits1! + 1000
  173. CLS
  174. LOCATE 5, 30
  175. COLOR 7
  176. PRINT "WINS-";
  177. COLOR 4
  178. PRINT wins1;
  179. COLOR 1
  180. PRINT wins2
  181.  
  182. LOCATE 10, 27
  183. COLOR 7
  184. PRINT "CREDITS-";
  185. COLOR 4
  186. PRINT credits1!;
  187. COLOR 1
  188. PRINT credits2!
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196. keytrap:
  197. LOCATE 17, 27
  198. COLOR 7
  199. PRINT "HIT <ENTER> TO CONTINUE"
  200. a$ = INKEY$
  201. IF a$ = CHR$(27) THEN STOP
  202. IF a$ <> CHR$(13) THEN GOTO keytrap
  203. END SUB
  204.  
  205. SUB move (nn1, nn2, n1, n2, x1, y1, x2, y2, d1, d2, s1, s2, f1, F2)
  206. a$ = INKEY$
  207. dd1 = d1
  208. dd2 = d2
  209. nn1 = n1
  210. nn2 = n2
  211. ' right
  212. IF a$ = CHR$(27) THEN END
  213. IF a$ = CHR$(0) + "P" THEN d1 = 12
  214. IF a$ = CHR$(0) + "K" THEN d1 = 1
  215. IF a$ = CHR$(0) + "H" THEN d1 = 11
  216. IF a$ = CHR$(0) + "M" THEN d1 = 2
  217. IF a$ = CHR$(13) AND n1 > 0 THEN s1 = 0: f1 = 150: n1 = n1 - 1
  218. f1 = f1 - 1
  219. IF f1 < 1 THEN s1 = 5: f1 = 0
  220.  
  221. ' left
  222. IF a$ = "b" OR a$ = "B" THEN d2 = 1
  223. IF a$ = "n" OR a$ = "N" THEN d2 = 12
  224. IF a$ = "m" OR a$ = "M" THEN d2 = 2
  225. IF a$ = "h" OR a$ = "H" THEN d2 = 11
  226. IF a$ = " " AND n2 > 0 THEN s2 = 0: F2 = 150: n2 = n2 - 1
  227. F2 = F2 - 1
  228. IF F2 < 1 THEN s2 = 5: F2 = 0
  229.  
  230.  
  231. IF d1 - 1 = dd1 OR d1 + 1 = dd1 THEN d1 = dd1
  232. IF d2 - 1 = dd2 OR d2 + 1 = dd2 THEN d2 = dd2
  233.  
  234.  
  235. END SUB
  236.  
  237. SUB worm (credits1!, credits2!, x, y, h, f, ff)
  238. RANDOMIZE TIMER
  239. PSET (x, y), 13
  240. h = h + 1
  241. IF h < 75 THEN GOTO detore
  242. h = 0
  243. w = INT(RND * 8) + 1
  244. IF w = 1 THEN f = 1: ff = 1
  245. IF w = 2 THEN f = 1: ff = -1
  246. IF w = 3 THEN f = 1: ff = 0
  247. IF w = 4 THEN f = -1: ff = 1
  248. IF w = 5 THEN f = -1: ff = -1
  249. IF w = 6 THEN f = -1: ff = 0
  250. IF w = 7 THEN f = 0: ff = 1
  251. IF w = 8 THEN f = 0: ff = -1
  252.  
  253.  
  254. detore:
  255. xx = x
  256. yy = y
  257. dd = d
  258. d = INT(RND * 6) + 1
  259. IF dd = 1 AND d = 2 THEN d = dd
  260. IF dd = 2 AND d = 1 THEN d = dd
  261. IF dd = 3 AND d = 4 THEN d = dd
  262. IF dd = 4 AND d = 3 THEN d = dd
  263. IF d = 5 THEN y = y + ff: x = x + f
  264. IF d = 6 THEN y = y + ff: x = x + f
  265.  
  266. IF d = 4 THEN x = x - 1
  267. IF d = 2 THEN x = x + 1
  268. IF d = 3 THEN y = y + 1
  269. IF d = 1 THEN y = y - 1
  270. c = POINT(x, y)
  271. IF c <> 0 AND c <> 13 AND c = 4 THEN x = xx: y = yy: credits1! = credits1! + 2: SOUND 5000, .023
  272. IF c <> 0 AND c <> 13 AND c = 1 THEN x = xx: y = yy: credits2! = credits2! + 2: SOUND 39, .023
  273. IF c <> 0 AND c <> 13 THEN x = xx: y = yy
  274.  
  275. END SUB
  276.  
  277.