Advertisement
Guest User

Untitled

a guest
Sep 16th, 2017
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
QBasic 59.12 KB | None | 0 0
  1. DECLARE SUB pauseplay ()
  2. DECLARE SUB doend ()
  3. DECLARE SUB rotbotcol ()
  4. DECLARE SUB dopause ()
  5. DECLARE SUB winning ()
  6. DECLARE SUB help ()
  7. DECLARE SUB title ()
  8. DECLARE SUB fadeoff ()
  9. DECLARE SUB killtank ()
  10. DECLARE SUB robotsht ()
  11. DECLARE SUB moverobot ()
  12. DECLARE SUB iceo (xx!, yy!, rr!, aa!)
  13. DECLARE SUB goalcol ()
  14. DECLARE SUB gucko (gu1!, gu2!, gu3!, gu4!)
  15. DECLARE SUB expmine (e!)
  16. DECLARE SUB endlev ()
  17. DECLARE SUB goal ()
  18. DECLARE SUB movewall ()
  19. DECLARE SUB levels ()
  20. DECLARE SUB fadeon ()
  21. DECLARE SUB col ()
  22. DECLARE SUB mtbul ()
  23. DECLARE SUB movetank ()
  24. DECLARE SUB findtdir ()
  25. DECLARE SUB tshoot ()
  26. DECLARE SUB setup ()
  27. DECLARE SUB robul ()
  28. DIM SHARED spbox(30)
  29. DIM SHARED fire1(34)
  30. DIM SHARED fire2(34)
  31. DIM SHARED fire3(34)
  32. DIM SHARED tank2(34)
  33. DIM SHARED tank3(34)
  34. DIM SHARED finbul(34)
  35. DIM SHARED tanku(34)
  36. DIM SHARED tankd(34)
  37. DIM SHARED tankl(34)
  38. DIM SHARED tankr(34)
  39. DIM SHARED tankbox(34)
  40. DIM SHARED bul(4)
  41. DIM SHARED hwall(100)
  42. DIM SHARED vwall(100)
  43. DIM SHARED gl(100)
  44. DIM SHARED mine(34)
  45. DIM SHARED robot(50)
  46.  
  47. 'explosion
  48. DIM SHARED wheel1(34)
  49. DIM SHARED wheel2(34)
  50. DIM SHARED wheel3(34)
  51. DIM SHARED wheel4(34)
  52. DIM SHARED dome(34)
  53. DIM SHARED can1(20)
  54. DIM SHARED can2(20)
  55.  
  56. DIM SHARED p$(17)
  57. DIM SHARED red(255)
  58. DIM SHARED blue(255)
  59. DIM SHARED green(255)
  60. DIM SHARED r(255)
  61. DIM SHARED B(255)
  62. DIM SHARED g(255)
  63. DIM SHARED ron(5)
  64. DIM SHARED rx(5)
  65. DIM SHARED ry(5)
  66. DIM SHARED rw(5)
  67. DIM SHARED rz(5)
  68. DIM SHARED rwalk(5)
  69. DIM SHARED rdir(5)
  70. DIM SHARED rbul(5)
  71. DIM SHARED rbx(5)
  72. DIM SHARED rby(5)
  73. DIM SHARED rbw(5)
  74. DIM SHARED rbz(5)
  75. DIM SHARED tarx(5)
  76. DIM SHARED tary(5)
  77. DIM SHARED bon(5)
  78. DIM SHARED bx(5)
  79. DIM SHARED by(5)
  80. DIM SHARED bw(5)
  81. DIM SHARED bz(5)
  82. DIM SHARED hx1(5)
  83. DIM SHARED hx2(5)
  84. DIM SHARED hy(5)
  85. DIM SHARED hx(5)
  86. DIM SHARED hz(5)
  87. DIM SHARED hon(5)
  88. DIM SHARED vy1(5)
  89. DIM SHARED vy2(5)
  90. DIM SHARED vy(5)
  91. DIM SHARED vx(5)
  92. DIM SHARED vw(5)
  93. DIM SHARED von(5)
  94.  
  95. COMMON SHARED q, gx, gy, oy1, oy2, ox1, endl, putted, dead, gnum, icy, explode
  96. COMMON SHARED tw, tx, ty, tz, tdir, contmode, going, guck, level, rshspd, done
  97. COMMON SHARED quit, lives, score, musc, lose
  98.  
  99. ON ERROR GOTO handle
  100.  
  101.  
  102. contmode = 1
  103. setup
  104.  
  105. 'winning
  106. 'END
  107.  
  108.  
  109. rest:
  110. title
  111.  
  112. lives = 2
  113.  
  114. level = 1
  115.  
  116. restart:
  117. IF lose = 1 THEN GOTO lost
  118.  
  119. levels
  120.  
  121. ert:
  122. rotbotcol
  123. movetank
  124. IF endl = 1 THEN endlev
  125. IF done = 1 THEN GOTO restart
  126. mtbul
  127. movewall
  128. goalcol
  129. movetank
  130. IF endl = 1 THEN endlev
  131. IF done = 1 THEN GOTO restart
  132. moverobot
  133. robotsht
  134.  
  135. IF dead = 1 THEN killtank
  136. IF dead = 1 THEN GOTO restart
  137. IF quit = 1 THEN GOTO sure
  138.  
  139. quit = 0
  140. IF level = 10 THEN IF putted = 1 THEN GOTO final
  141. GOTO ert
  142.  
  143. final:
  144. IF tx <= 114 THEN  ELSE GOTO ert
  145. IF ty >= 80 THEN IF ty <= 90 THEN  ELSE GOTO ert ELSE GOTO ert
  146.  
  147. GET (113, ty)-(124, ty + 10), tankbox
  148. IF tdir = 1 THEN PUT (tx, ty), tanku
  149. IF tdir = 2 THEN PUT (tx, ty), tankr
  150. IF tdir = 3 THEN PUT (tx, ty), tankd
  151. IF tdir = 4 THEN PUT (tx, ty), tankl
  152.  
  153. FOR t = 1 TO 10
  154. PUT (113, ty), tankbox
  155. ERASE tankbox
  156. GET (114, ty)-(124, ty + 10), tankbox
  157. FOR tt = 1 TO 300
  158. NEXT tt
  159. LINE (113, ty)-(124, ty + 10), 0, BF
  160. NEXT t
  161.  
  162. fadeoff
  163. winning
  164. GOTO rest
  165.  
  166.  
  167. sure:
  168. LOCATE 1
  169. PRINT "                                       "
  170. q$ = "   Do you really want to quit? (Y/N)   "
  171.  
  172. FOR t = 1 TO 39
  173. LOCATE 1, t
  174. B$ = MID$(q$, t, 1)
  175. PRINT B$
  176. FOR tt = 1 TO 200
  177. NEXT tt
  178. IF UCASE$(INKEY$) = "Y" THEN GOTO rest
  179. NEXT t
  180.  
  181. sur:
  182. LOCATE 1, 1
  183. PRINT q$
  184. a$ = UCASE$(INKEY$)
  185. IF a$ = "Y" THEN GOTO rest
  186. IF a$ = "N" THEN  ELSE GOTO sur
  187. quit = 0
  188. LOCATE 1, 1
  189. PRINT "                                        "
  190. LOCATE 1, 1
  191. PRINT "Level"; level
  192. LOCATE 1, 13
  193. PRINT "Tanks"; lives
  194. LOCATE 1, 25
  195. PRINT "Score"; score
  196. GOTO ert
  197.  
  198. handle:
  199. SELECT CASE ERR
  200. CASE 5: IF explode = 1 THEN RESUME NEXT
  201. CASE ELSE: RESUME NEXT
  202. END SELECT
  203.  
  204. END
  205.  
  206. lost:
  207. SLEEP 3
  208. lose = 0
  209.  
  210. FOR t = 1 TO 5
  211. rw(t) = (360 / 5) * t           'angle
  212. rz(t) = 70                      'dist
  213.  
  214. 'cos(0)=rx(t)/rz(t)
  215. rx(t) = ((COS(rw(t) * 3.14 / 180)) * rz(t)) + 152
  216. ry(t) = ((SIN(rw(t) * 3.14 / 180)) * rz(t) * .5) + 92
  217.  
  218. PUT (rx(t), ry(t)), robot
  219. NEXT t
  220.  
  221.  
  222. LOCATE 13, 17
  223. PRINT "The End"
  224. LOCATE 20, 13
  225.  
  226. FOR tt = 1 TO 100
  227.  
  228. FOR t = 100 TO 5000 STEP 500
  229. SOUND t, .03
  230. SOUND 1000, .03
  231. NEXT t
  232.  
  233. FOR t = 1 TO 5
  234. rw(t) = rw(t) + 5
  235. PUT (rx(t), ry(t)), robot
  236. rx(t) = ((COS(rw(t) * 3.14 / 180)) * rz(t)) + 152
  237. ry(t) = ((SIN(rw(t) * 3.14 / 180)) * rz(t) * .5) + 92
  238. PUT (rx(t), ry(t)), robot
  239. NEXT t
  240.  
  241. IF tt = 50 THEN PRINT "...of the world"
  242.  
  243. a$ = INKEY$
  244. IF a$ = "" THEN  ELSE GOTO rest
  245.  
  246. NEXT tt
  247.  
  248. SLEEP 2
  249. GOTO rest
  250.  
  251. SUB col
  252. new& = (65536 * blue(q)) + (256 * green(q)) + red(q)
  253. PALETTE q, new&
  254. END SUB
  255.  
  256. SUB doend
  257. ' Show the credits
  258.  
  259. CLS
  260. FOR q = 1 TO 4
  261. red(q) = 0
  262. blue(q) = 0
  263. green(q) = 0
  264. col
  265. NEXT q
  266.  
  267. COLOR 1
  268. LOCATE 6, 12
  269. PRINT "ROBOT ATTACK II"
  270. COLOR 2
  271. LOCATE 9, 7
  272. PRINT "Written and Programmed by"
  273. COLOR 3
  274. LOCATE 11, 13
  275. PRINT "Jack Thomson"
  276. COLOR 4
  277. LOCATE 13, 17
  278. PRINT "1997"
  279.  
  280. red(1) = 63
  281. blue(1) = 0
  282. green(1) = 0
  283. red(2) = 20
  284. blue(2) = 63
  285. green(2) = 20
  286. red(3) = 30
  287. blue(3) = 30
  288. green(3) = 63
  289. red(4) = 20
  290. blue(4) = 20
  291. green(4) = 20
  292.  
  293. FOR q = 1 TO 4
  294. col
  295. NEXT q
  296.  
  297. FOR t = 1 TO 40
  298. dopause
  299. IF INKEY$ = "" THEN  ELSE END
  300. NEXT t
  301.  
  302. END
  303.  
  304. END SUB
  305.  
  306. SUB dopause
  307. t = TIMER + .01
  308. DO
  309. LOOP UNTIL TIMER >= t
  310.  
  311. END SUB
  312.  
  313. SUB endlev
  314. GET (tx, ty)-(tx + 9, ty + 10), tankbox
  315. PUT (tx, ty), tankr
  316.  
  317. FOR t = 1 TO 10
  318. PUT (tx + 1, ty), tankbox
  319. ERASE tankbox
  320. GET (tx, ty)-(tx + 9, ty + 10), tankbox
  321. FOR tt = 1 TO 130
  322. NEXT tt
  323. LINE (tx, ty)-(tx + 10, ty + 10), 0, BF
  324. NEXT t
  325.  
  326. level = level + 1
  327. lives = lives + 1
  328. done = 1
  329.  
  330. fadeoff
  331.  
  332. END SUB
  333.  
  334. SUB expmine (e)
  335. IF e = 1 THEN GOTO exp1 ELSE GOTO exp2
  336.  
  337. exp1:
  338. SELECT CASE tdir
  339. CASE 1: x = tx - 4
  340.         y = ty - 11
  341. CASE 2: x = tx + 11
  342.         y = ty - 7
  343. CASE 3: x = tx - 4
  344.         y = ty + 7
  345. CASE 4: x = tx - 9
  346.         y = ty - 7
  347. END SELECT
  348. GOTO explode
  349.  
  350. exp2:
  351. SELECT CASE tdir
  352. CASE 1: x = tx + 7
  353.         y = ty - 11
  354. CASE 2: x = tx + 11
  355.         y = ty + 4
  356. CASE 3: x = tx + 4
  357.         y = ty + 7
  358. CASE 4: x = tx - 9
  359.         y = ty + 2
  360. END SELECT
  361.  
  362. explode:
  363. PUT (x, y), fire1
  364. FOR t = 1 TO 700
  365. NEXT t
  366. PUT (x, y), fire1
  367. y = y - 1
  368. PUT (x, y), fire2
  369. FOR t = 1 TO 700
  370. NEXT t
  371. PUT (x, y), fire2
  372. y = y - 1
  373. PUT (x, y), fire3
  374. FOR t = 1 TO 700
  375. NEXT t
  376. PUT (x, y), fire3
  377.  
  378. dead = 1
  379.  
  380. END SUB
  381.  
  382. SUB fadeoff
  383. LOCATE 1, 1
  384. PRINT "                                        "
  385. FOR t = 1 TO 5
  386. IF ron(t) = 1 THEN PUT (rx(t), ry(t)), robot
  387. IF rbul(t) = 1 THEN PUT (rbx(t), rby(t)), bul
  388. IF bon(t) = 1 THEN PUT (bx(t), by(t)), bul
  389. NEXT t
  390. LINE (tx, ty)-(tx + 9, ty + 9), 0, BF
  391. FOR tt = 1 TO 10
  392. FOR q = 16 TO 20
  393. red(q) = INT(r(q) * (10 - tt) / 10)
  394. blue(q) = INT(B(q) * (10 - tt) / 10)
  395. green(q) = INT(g(q) * (10 - tt) / 10)
  396. col
  397. NEXT q
  398. NEXT tt
  399. CLS
  400.  
  401. END SUB
  402.  
  403. SUB fadeon
  404.  
  405. r(16) = 60
  406. B(16) = 0
  407. g(16) = 0
  408.  
  409. r(17) = 30
  410. B(17) = 0
  411. g(17) = 30
  412.  
  413. r(18) = 0
  414. B(18) = 0
  415. g(18) = 0
  416.  
  417. r(19) = 12
  418. B(19) = 12
  419. g(19) = 12
  420.  
  421. r(20) = 40
  422. B(20) = 60
  423. g(20) = 60
  424.  
  425.  
  426. FOR tt = 1 TO 10
  427. FOR q = 16 TO 20
  428. red(q) = INT(r(q) * tt / 10)
  429. blue(q) = INT(B(q) * tt / 10)
  430. green(q) = INT(g(q) * tt / 10)
  431. col
  432. NEXT q
  433. NEXT tt
  434.  
  435. END SUB
  436.  
  437. SUB findtdir
  438. IF going = 1 THEN GOTO tyes ELSE
  439. tw = 0
  440. tz = 0
  441. GOTO tend
  442.  
  443. tyes:
  444. IF tdir = 1 THEN GOTO td1
  445. IF tdir = 2 THEN GOTO td2
  446. IF tdir = 3 THEN GOTO td3 ELSE GOTO td4
  447.  
  448. td1:
  449. tw = -1
  450. tz = 0
  451. GOTO tend
  452.  
  453. td2:
  454. tw = 0
  455. tz = 1
  456. GOTO tend
  457.  
  458. td3:
  459. tw = 1
  460. tz = 0
  461. GOTO tend
  462.  
  463. td4:
  464. tw = 0
  465. tz = -1
  466.  
  467. tend:
  468.  
  469. END SUB
  470.  
  471. SUB goal
  472. IF putted = 1 THEN GOTO eng ELSE PUT (gx, gy), gl
  473. putted = 1
  474. score = score + 200
  475. LOCATE 1, 25
  476. PRINT "Score"; score
  477.  
  478. FOR t = 10 TO 50 STEP 10
  479. SOUND 40 + (t * t), .5
  480. NEXT t
  481.  
  482.  
  483. IF level = 1 THEN GOTO glv1
  484. IF level = 2 THEN GOTO glv2
  485. IF level = 3 THEN GOTO glv3
  486. IF level = 4 THEN GOTO glv4
  487. IF level = 5 THEN GOTO glv5
  488. IF level = 6 THEN GOTO glv6
  489. IF level = 7 THEN GOTO glv7
  490. IF level = 8 THEN GOTO glv8
  491. IF level = 9 THEN GOTO glv9
  492. IF level = 10 THEN GOTO glv20
  493. IF level = 11 THEN GOTO glv11
  494. IF level = 12 THEN GOTO glv12
  495. IF level = 13 THEN GOTO glv13
  496. 'IF level = 14 THEN GOTO glv14
  497. 'IF level = 15 THEN GOTO glv15
  498. 'IF level = 16 THEN GOTO glv16
  499. 'IF level = 17 THEN GOTO glv17
  500. 'IF level = 18 THEN GOTO glv18
  501. 'IF level = 19 THEN GOTO glv19
  502. IF level = 20 THEN GOTO glv20
  503. END
  504.  
  505. glv1:                
  506. LINE (300, 50)-(320, 90), 0, BF
  507. GOTO eng
  508.  
  509. glv2:
  510. LINE (314, 160)-(320, 180), 0, BF
  511. GOTO eng
  512.  
  513. glv3:
  514. LINE (314, 140)-(320, 155), 0, BF
  515. ron(4) = 1
  516. rx(4) = 280
  517. ry(4) = 140
  518. PUT (rx(4), ry(4)), robot
  519.  
  520. GOTO eng
  521.  
  522. glv4:
  523. LINE (200, 26)-(320, 54), 16, BF
  524. LINE (200, 30)-(320, 50), 0, BF
  525. LINE (215, 30)-(300, 50), 20, BF
  526. GOTO eng
  527.  
  528. glv5:
  529. LINE (314, 170)-(320, 190), 0, BF
  530. CALL gucko(190, 15, 270, 35)
  531. GOTO eng
  532.  
  533. glv6:
  534. LINE (312, 180)-(320, 194), 0, BF
  535. GOTO eng
  536.  
  537. glv7:
  538. LINE (175, 90)-(179, 120), 0, BF
  539. FOR t = 15 TO 185 STEP 10
  540. PUT (CINT(RND * 50) + 250, t), mine
  541. NEXT t
  542. FOR t = 15 TO 185 STEP 10
  543. PUT (CINT(RND * 50) + 200, t), mine
  544. NEXT t
  545.  
  546. ron(2) = 1
  547. rx(2) = 100
  548. ry(2) = 50
  549. ron(3) = 1
  550. rx(3) = 100
  551. ry(3) = 155
  552. PUT (rx(2), ry(2)), robot
  553. PUT (rx(3), ry(3)), robot
  554. rshspd = 5
  555. GOTO eng
  556.  
  557. glv8:
  558. FOR t = 1 TO 5
  559. von(t) = 0
  560. NEXT t
  561. LINE (315, 30)-(320, 50), 16, BF
  562. LINE (315, 70)-(320, 83), 0, BF
  563.  
  564. ron(3) = 1
  565. rx(3) = 140
  566. ry(3) = ty - 2
  567.  
  568. PUT (rx(3), ry(3)), robot
  569.  
  570. GOTO eng
  571.  
  572. glv9:
  573. LINE (135, 25)-(147, 35), 0, BF
  574. LINE (148, 25)-(300, 35), 20, BF
  575. LINE (314, 194)-(320, 180), 0, BF
  576.  
  577. LINE (206, 60)-(320, 160), 16, BF
  578. LINE (250, 60)-(270, 160), 20, BF
  579. FOR t = 1 TO 4
  580. LINE (206, 60 + (t * 20))-(313, 64 + (t * 20)), 0, BF
  581. hon(t) = 1
  582. hx1(t) = 210
  583. hx2(t) = 288
  584. hx(t) = 250
  585. hy(t) = 60 + (t * 20)
  586. hz(t) = t
  587. PUT (hx(t), hy(t)), hwall
  588. NEXT t
  589.  
  590. GOTO eng
  591.  
  592. glv10:
  593. FOR t = 36 TO 1 STEP -1
  594. LINE (320 - t, 50 - (t / 2))-(320 - t, 60 + (t / 2)), 0
  595. NEXT t
  596. LINE (22, 15)-(26, 34), 0, BF
  597.  
  598. ron(4) = 1
  599. rx(4) = 100
  600. ry(4) = 70
  601.  
  602. ron(5) = 1
  603. rx(5) = 50
  604. ry(5) = 170
  605.  
  606. PUT (rx(4), ry(4)), robot
  607. PUT (rx(5), ry(5)), robot
  608.  
  609. rshspd = 6
  610.  
  611.  
  612. GOTO eng
  613.  
  614. glv11:
  615.  
  616. von(5) = 2
  617. vy1(5) = 10
  618. vy2(5) = 82
  619. vy(5) = 50
  620. vx(5) = 315
  621. vw(5) = 1
  622. PUT (vx(5), vy(5)), vwall
  623.  
  624. ron(4) = 1
  625. rx(4) = 30
  626. ry(4) = 70
  627. PUT (rx(4), ry(4)), robot
  628.  
  629. rx(5) = rx(3)
  630. ry(5) = ry(3)
  631. IF ron(3) = 1 THEN ron(5) = 1
  632. IF ron(5) = 1 THEN PUT (rx(5), ry(5)), robot
  633.  
  634. GOTO eng
  635.  
  636. glv12:
  637.  
  638. LINE (190, 100)-(194, 36), 16, BF
  639. LINE (5, 36)-(17, 65), 0, BF
  640. LINE (5, 65)-(30, 85), 0, BF
  641. LINE (315, 15)-(320, 35), 0, BF
  642.  
  643. ron(2) = 1
  644. rx(2) = 195
  645. ry(2) = 170
  646. PUT (rx(2), ry(2)), robot
  647. IF ron(1) = 1 THEN ron(3) = 1
  648. rx(3) = 300
  649. ry(3) = 17
  650. IF ron(3) = 1 THEN PUT (rx(3), ry(3)), robot
  651. ron(4) = 1
  652. rx(4) = 100
  653. ry(4) = 130
  654. ron(5) = 1
  655. rx(5) = 120
  656. ry(5) = 170
  657. PUT (rx(4), ry(4)), robot
  658. PUT (rx(5), ry(5)), robot
  659.  
  660. GOTO eng
  661.  
  662. glv13:
  663.  
  664. FOR a = 1 TO 4
  665. IF ron(a) = 0 THEN ron(a) = 1 ELSE GOTO noa
  666. rx(a) = 155
  667. ry(a) = 30 + (a * 30)
  668. noa:
  669. NEXT a
  670.  
  671. LINE (312, 20)-(320, 30), 0, BF
  672.  
  673. LINE (7, 50)-(23, 56), 20, BF
  674. LINE (7, 110)-(23, 116), 20, BF
  675. LINE (7, 170)-(23, 176), 20, BF
  676. LINE (312, 80)-(296, 86), 20, BF
  677. LINE (312, 140)-(296, 146), 20, BF
  678.  
  679.  
  680. GOTO eng
  681.  
  682. glv20:
  683. FOR t = 1 TO 4
  684. IF hon(t) = 1 THEN PUT (hx(t), hy(t)), hwall
  685. IF hon(t) = 2 THEN PUT (hx(t), hy(t)), vwall
  686. hon(t) = 0
  687. NEXT t
  688.  
  689. hon(1) = 1
  690. hx1(1) = 90
  691. hx2(1) = 250
  692. hx(1) = 100
  693. hy(1) = 36
  694. hz(1) = 1
  695. hon(2) = 2
  696. hx1(2) = 90
  697. hx2(2) = 250
  698. hx(2) = 100
  699. hy(2) = 15
  700. hz(2) = 1
  701. 'hon(3) = 1
  702. 'hx1(3) = 120
  703. 'hx2(3) = 280
  704. 'hx(3) = 121
  705. 'hy(3) = 36
  706. 'hz(3) = 1
  707. 'hon(4) = 2
  708. 'hx1(4) = 111
  709. 'hx2(4) = 287
  710. 'hx(4) = 137
  711. 'hy(4) = 15
  712. 'hz(4) = 1
  713.  
  714.  
  715. FOR t = 1 TO 4
  716. IF hon(t) = 1 THEN PUT (hx(t), hy(t)), hwall
  717. IF hon(t) = 2 THEN PUT (hx(t), hy(t)), vwall
  718. NEXT t
  719.  
  720.  
  721.  
  722. FOR t = 1 TO 5
  723. IF ron(t) = 1 THEN PUT (rx(t), ry(t)), robot
  724. ron(t) = 1
  725. rx(t) = 200 + (t * 15)
  726. ry(t) = 130
  727. PUT (rx(t), ry(t)), robot
  728. rwalk(t) = 150
  729. rdir(t) = 1
  730. rw(t) = 0
  731. rz(t) = 0
  732. NEXT t
  733.  
  734. vy1(1) = 65
  735. von(2) = 1
  736. vy1(2) = 50
  737. vy2(2) = 120
  738. vy(2) = 50
  739. vx(2) = 179
  740. vw(2) = 3
  741. von(3) = 1
  742. vy1(3) = 50
  743. vy2(3) = 120
  744. vy(3) = 120
  745. vx(3) = 158
  746. vw(3) = -2
  747. von(4) = 1
  748. vy1(4) = 50
  749. vy2(4) = 120
  750. vy(4) = 100
  751. vx(4) = 137
  752. vw(4) = 4
  753.  
  754. PUT (vx(2), vy(2)), hwall
  755. PUT (vx(3), vy(3)), hwall
  756. PUT (vx(4), vy(4)), hwall
  757.  
  758. LINE (107, 74)-(130, 106), 16, B
  759. LINE (108, 75)-(130, 105), 18, BF
  760. LINE (113, 80)-(130, 100), 0, BF
  761.  
  762.  
  763. GOTO eng
  764.  
  765. eng:
  766.  
  767.  
  768. END SUB
  769.  
  770. SUB goalcol
  771. q = 18
  772. gnum = gnum + 2
  773. IF gnum > 80 THEN gnum = 0
  774. IF gnum < 40 THEN  ELSE GOTO gl2
  775. blue(18) = 41 - gnum
  776. green(18) = gnum
  777. GOTO endg
  778.  
  779. gl2:
  780. blue(18) = gnum - 40
  781. green(18) = 81 - gnum
  782.  
  783. endg:
  784. B(18) = blue(18)
  785. g(18) = green(18)
  786. col
  787. END SUB
  788.  
  789. SUB gucko (gu1, gu2, gu3, gu4)
  790. t1 = (gu3 - gu1)
  791. t2 = (gu4 - gu2)
  792. tt = t1 * t2 / 7
  793.  
  794. FOR t = 1 TO tt
  795. xx = CINT(RND * t1) + gu1
  796. yy = CINT(RND * t2) + gu2
  797. PSET (xx, yy), 17
  798. NEXT t
  799.  
  800. END SUB
  801.  
  802. SUB help
  803. begin:
  804. CLS
  805. FOR q = 42 TO 45
  806. red(q) = 57
  807. blue(q) = 57
  808. green(q) = 57
  809. col
  810. NEXT q
  811.  
  812. LINE (0, 0)-(319, 199), 35, B
  813. LINE (5, 5)-(314, 194), 35, B
  814. PAINT (2, 2), 36, 35
  815.  
  816. COLOR 42
  817. LOCATE 3, 9
  818. PRINT "Welcome to ROBOT ATTACK"
  819. LOCATE 5, 4
  820. PRINT "Press the letter of your selection"
  821.  
  822. LOCATE 8, 14
  823. COLOR 43
  824. PRINT "(C)ontrol"
  825.  
  826. LOCATE 10, 14
  827. COLOR 44
  828. PRINT "(M)ission"
  829.  
  830. LOCATE 12, 14
  831. COLOR 45
  832. PRINT "(H)azards"
  833.  
  834. COLOR 42
  835. LOCATE 15, 5
  836. PRINT "Press F2 to play ROBOT ATTACK"
  837. LOCATE 16, 5
  838. PRINT "Press Esc at title to Exit"
  839. LOCATE 23, 7
  840. PRINT "Press Esc to retutrn to title"
  841.  
  842. h1:
  843. a$ = UCASE$(INKEY$)
  844. IF a$ = "C" THEN GOTO h2
  845. IF a$ = "M" THEN GOTO h3
  846. IF a$ = "H" THEN GOTO h4
  847. IF a$ = CHR$(27) THEN GOTO endof
  848. GOTO h1
  849.  
  850. h2:
  851. 'LINE (6, 6)-(313, 193), 0, BF
  852. FOR gx = 57 TO 0 STEP -2
  853. red(42) = gx
  854. red(44) = gx
  855. red(45) = gx
  856. blue(42) = gx
  857. blue(44) = gx
  858. blue(45) = gx
  859. green(42) = gx
  860. green(44) = gx
  861. green(45) = gx
  862. FOR q = 42 TO 45
  863. col
  864. NEXT q
  865. NEXT gx
  866. COLOR 43
  867. FOR t = 8 TO 4 STEP -1
  868. LOCATE t, 14
  869. PRINT "         "
  870. LOCATE t - 1, 14
  871. PRINT "(C)ontrol"
  872. FOR tt = 1 TO 500
  873. NEXT tt
  874. NEXT t
  875. FOR tt = 1 TO 1300
  876. NEXT tt
  877. LOCATE 3, 14
  878. PRINT " C ontrol"
  879. FOR tt = 1 TO 500
  880. NEXT tt
  881. LOCATE 3, 14
  882. PRINT " Control "
  883.  
  884. hhh1:
  885. LINE (6, 25)-(313, 193), 0, BF
  886. LOCATE 5, 3
  887. '*********************************************
  888. PRINT "There are two ways that the tank may"
  889. LOCATE 6, 3
  890. PRINT "be controlled. Press the number of"
  891. LOCATE 7, 3
  892. PRINT "control that you would like explained"
  893. LOCATE 10, 14
  894. PRINT "Mode 1"
  895. LOCATE 12, 14
  896. PRINT "Mode 2"
  897. LOCATE 15, 3
  898. PRINT "The tank may shoot 5 bullets at once."
  899. LOCATE 17, 6
  900. PRINT "The space bar is used to shoot."
  901. LOCATE 19, 6
  902. PRINT "Press `S' to toggle sound."
  903. LOCATE 20, 6
  904. PRINT "Press `C' to change control mode."
  905. LOCATE 22, 3
  906. PRINT "Press Esc to return to help menu..."
  907.  
  908. hh1:
  909. a$ = INKEY$
  910. IF a$ = "1" THEN GOTO hh2
  911. IF a$ = "2" THEN GOTO hh3
  912. IF a$ = CHR$(27) THEN GOTO begin
  913. GOTO hh1
  914.  
  915. hh2:
  916. LINE (6, 25)-(313, 193), 0, BF
  917. PUT (205, 90), tanku
  918. PUT (190, 105), tankl
  919. PUT (220, 105), tankr
  920. PUT (205, 120), tankd
  921. LINE (210, 85)-(210, 75), 43
  922. DRAW "g3 e3 f3"
  923. LINE (210, 135)-(210, 145), 43
  924. DRAW "h3 f3 e3"
  925. LINE (185, 110)-(175, 110), 43
  926. DRAW "e3 g3 f3"
  927. LINE (235, 110)-(245, 110), 43
  928. DRAW "h3 f3 g3"
  929.  
  930. LOCATE 5, 3
  931. PRINT "With this mode of control, the tank"
  932. LOCATE 6, 3
  933. PRINT "changes to the direction of the"
  934. LOCATE 7, 3
  935. PRINT "pressed arrow.  The `A' and `Z' keys"
  936. LOCATE 8, 3
  937. PRINT "make the tank go and stop."
  938.  
  939. LOCATE 12, 3
  940. PRINT "Use the arrow"
  941. LOCATE 13, 3
  942. PRINT "keys or the"
  943. LOCATE 14, 3
  944. PRINT "keypad keys to"
  945. LOCATE 15, 3
  946. PRINT "control the tank"
  947.  
  948. LOCATE 22, 7
  949. PRINT "Press Esc to continue..."
  950. DO
  951. a$ = INKEY$
  952. LOOP UNTIL a$ = CHR$(27)
  953. GOTO hhh1
  954.  
  955. hh3:
  956. LINE (6, 25)-(313, 193), 0, BF
  957. LOCATE 5, 3
  958. PRINT "For control mode #2, when the right"
  959. LOCATE 6, 3
  960. PRINT "arrow key is pressed, the tank TURNS"
  961. LOCATE 7, 3
  962. PRINT "right. The illustration below shows"
  963. LOCATE 8, 3
  964. PRINT "the tank TURNING right two times."
  965. LOCATE 9, 3
  966. PRINT "Summary: The right key turns the"
  967. LOCATE 10, 3
  968. PRINT "tank clockwise and the left key"
  969. LOCATE 11, 3
  970. PRINT "turns the tank counter-clockwise."
  971. LOCATE 15, 3
  972. PRINT "The up arrow key causes"
  973. LOCATE 16, 3
  974. PRINT "the tank to go forward and"
  975. LOCATE 17, 3
  976. PRINT "the down arrow key causes"
  977. LOCATE 18, 3
  978. PRINT "it to stop."
  979. LOCATE 22, 7
  980. PRINT "Press Esc to continue..."
  981.  
  982. PUT (240, 100), tankr
  983. CIRCLE (255, 116), 13, 43, 0, 1.57
  984. PSET (268, 117)
  985. DRAW "d3e3 g3 h3"
  986. PUT (263, 125), tankd
  987. CIRCLE (255, 140), 13, 43, 4.71, 0
  988. PSET (255, 151)
  989. DRAW "e3 g3 f3"
  990. PUT (240, 145), tankl
  991.  
  992. DO
  993. a$ = INKEY$
  994. LOOP UNTIL a$ = CHR$(27)
  995. GOTO hhh1
  996.  
  997. h3:
  998. FOR gx = 57 TO 0 STEP -2
  999. red(42) = gx
  1000. red(43) = gx
  1001. red(45) = gx
  1002. blue(42) = gx
  1003. blue(43) = gx
  1004. blue(45) = gx
  1005. green(42) = gx
  1006. green(43) = gx
  1007. green(45) = gx
  1008. FOR q = 42 TO 45
  1009. col
  1010. NEXT q
  1011. NEXT gx
  1012. COLOR 44
  1013. FOR t = 10 TO 4 STEP -1
  1014. LOCATE t, 14
  1015. PRINT "         "
  1016. LOCATE t - 1, 14
  1017. PRINT "(M)ission"
  1018. FOR tt = 1 TO 500
  1019. NEXT tt
  1020. NEXT t
  1021. FOR tt = 1 TO 1300
  1022. NEXT tt
  1023. LOCATE 3, 14
  1024. PRINT " M ission"
  1025. FOR tt = 1 TO 500
  1026. NEXT tt
  1027. LOCATE 3, 14
  1028. PRINT " Mission "
  1029.  
  1030. LINE (6, 25)-(313, 193), 0, BF
  1031. LOCATE 5, 3
  1032. PRINT "Your Mission:"
  1033. LOCATE 7, 3
  1034. PRINT "The evil robots are constructing a"
  1035. LOCATE 8, 3
  1036. PRINT "huge super-robot that is going to"
  1037. LOCATE 9, 3
  1038. PRINT "overthrow the human race and"
  1039. LOCATE 10, 3
  1040. PRINT "destroy the Earth!  You are the"
  1041. LOCATE 11, 3
  1042. PRINT "only one who can destroy this new"
  1043. LOCATE 12, 3
  1044. PRINT "danger and save the world.  To get"
  1045. LOCATE 13, 3
  1046. PRINT "through each level you must get the"
  1047. LOCATE 14, 3
  1048. PRINT "Crystal.  Then a door to the next"
  1049. LOCATE 15, 3
  1050. PRINT "level opens."
  1051. LOCATE 17, 3
  1052. PRINT "There are 10 levels full of shooting"
  1053. LOCATE 18, 3
  1054. PRINT "robots, explosive landmines, sticky"
  1055. LOCATE 19, 3
  1056. PRINT "guck, and other dangers. Be careful!"
  1057.  
  1058. LOCATE 23, 4
  1059. PRINT "Press Esc to return to help menu"
  1060. DO
  1061. a$ = INKEY$
  1062. LOOP UNTIL a$ = CHR$(27)
  1063. GOTO begin
  1064.  
  1065. h4:
  1066. FOR gx = 57 TO 0 STEP -2
  1067. red(42) = gx
  1068. red(43) = gx
  1069. red(44) = gx
  1070. blue(42) = gx
  1071. blue(43) = gx
  1072. blue(44) = gx
  1073. green(42) = gx
  1074. green(43) = gx
  1075. green(44) = gx
  1076. FOR q = 42 TO 44
  1077. col
  1078. NEXT q
  1079. NEXT gx
  1080. COLOR 45
  1081. FOR t = 12 TO 4 STEP -1
  1082. LOCATE t, 14
  1083. PRINT "         "
  1084. LOCATE t - 1, 14
  1085. PRINT "(H)azards"
  1086. FOR tt = 1 TO 500
  1087. NEXT tt
  1088. NEXT t
  1089. FOR tt = 1 TO 1300
  1090. NEXT tt
  1091. LOCATE 3, 14
  1092. PRINT " H azards"
  1093. FOR tt = 1 TO 500
  1094. NEXT tt
  1095. LOCATE 3, 14
  1096. PRINT " Hazards "
  1097.  
  1098. LINE (6, 25)-(313, 193), 0, BF
  1099. LOCATE 5, 3
  1100. PRINT "Robot"
  1101. PUT (75, 28), robot
  1102. LOCATE 5, 14
  1103. PRINT "Robots move around and"
  1104. LOCATE 6, 14
  1105. PRINT "shoot at you if you get"
  1106. LOCATE 7, 14
  1107. PRINT "in their way."
  1108.  
  1109. LOCATE 9, 3
  1110. PRINT "Ice"
  1111. CALL iceo(73, 68, 20, .2)
  1112. LOCATE 9, 14
  1113. PRINT "You have no control over"
  1114. LOCATE 10, 14
  1115. PRINT "the tank when it is on"
  1116. LOCATE 11, 14
  1117. PRINT "the slippery ice."
  1118.  
  1119. LOCATE 13, 3
  1120. PRINT "Walls"
  1121. PUT (65, 97), hwall
  1122. LOCATE 13, 14
  1123. PRINT "Do not run into either a"
  1124. LOCATE 14, 14
  1125. PRINT "normal or a moving wall."
  1126. LOCATE 15, 14
  1127. PRINT "They are both deadly."
  1128.  
  1129. LOCATE 17, 3
  1130. PRINT "Guck"
  1131. CALL gucko(60, 125, 80, 137)
  1132. LOCATE 17, 14
  1133. PRINT "Guck is harmless. All it"
  1134. LOCATE 18, 14
  1135. PRINT "does is stop the tank."
  1136.  
  1137. LOCATE 20, 3
  1138. PRINT "Mines"
  1139. PUT (70, 155), mine
  1140. LOCATE 20, 14
  1141. PRINT "Beware of landmines. They"
  1142. LOCATE 21, 14
  1143. PRINT "Cannot be seen easily."
  1144.  
  1145. LOCATE 23, 7
  1146. PRINT "Press Esc to continue..."
  1147.  
  1148.  
  1149. fadeon
  1150.  
  1151. DO
  1152. a$ = INKEY$
  1153. LOOP UNTIL a$ = CHR$(27)
  1154. GOTO begin
  1155.  
  1156. endof:
  1157. END SUB
  1158.  
  1159. SUB iceo (xx, yy, rr, aa)
  1160. CIRCLE (xx, yy), rr, 20, , , aa
  1161. PAINT (xx, yy), 20, 20
  1162. END SUB
  1163.  
  1164. SUB killtank
  1165. SOUND (RND * 100) + 40, .05
  1166. SOUND (RND * 100) + 40, .05
  1167.  
  1168. explode = 1
  1169. IF tdir = 1 THEN GOTO k1
  1170. IF tdir = 2 THEN GOTO k2
  1171. IF tdir = 3 THEN GOTO k3
  1172. IF tdir = 4 THEN GOTO k4
  1173. END
  1174.  
  1175. k1:
  1176. PUT (tx - 4, ty), wheel1
  1177. PUT (tx + 5, ty), wheel1
  1178. PUT (tx + 4, ty), can2
  1179. PUT (tx, ty), dome
  1180.  
  1181. FOR ttt = 0 TO 12 STEP 4
  1182. PUT (tx - (5 + ttt), ty), wheel4
  1183. PUT (tx + 6 + ttt, ty), wheel2
  1184. PUT (tx, ty + 1 + ttt), dome
  1185. PUT (tx + 4, ty - (1 + ttt)), can1
  1186. FOR tt = 1 TO 50
  1187. SOUND (RND * 100) + 40, .03
  1188. NEXT tt
  1189. PUT (tx - (5 + ttt), ty), wheel4
  1190. PUT (tx + 6 + ttt, ty), wheel2
  1191. PUT (tx, ty + 1 + ttt), dome
  1192. PUT (tx + 4, ty - (1 + ttt)), can1
  1193.  
  1194. PUT (tx - (6 + ttt), ty), wheel3
  1195. PUT (tx + 7 + ttt, ty), wheel3
  1196. PUT (tx, ty + 2 + ttt), dome
  1197. PUT (tx + 4, ty - (2 + ttt)), can2
  1198. FOR tt = 1 TO 50
  1199. SOUND (RND * 100) + 40, .03
  1200. NEXT tt
  1201. PUT (tx - (6 + ttt), ty), wheel3
  1202. PUT (tx + 7 + ttt, ty), wheel3
  1203. PUT (tx, ty + 2 + ttt), dome
  1204. PUT (tx + 4, ty - (2 + ttt)), can2
  1205.  
  1206. PUT (tx - (7 + ttt), ty), wheel2
  1207. PUT (tx + 8 + ttt, ty), wheel4
  1208. PUT (tx, ty + 3 + ttt), dome
  1209. PUT (tx + 4, ty - (3 + ttt)), can1
  1210. FOR tt = 1 TO 50
  1211. SOUND (RND * 100) + 40, .03
  1212. NEXT tt
  1213. PUT (tx - (7 + ttt), ty), wheel2
  1214. PUT (tx + 8 + ttt, ty), wheel4
  1215. PUT (tx, ty + 3 + ttt), dome
  1216. PUT (tx + 4, ty - (3 + ttt)), can1
  1217.  
  1218. PUT (tx - (8 + ttt), ty), wheel1
  1219. PUT (tx + 9 + ttt, ty), wheel1
  1220. PUT (tx, ty + 4 + ttt), dome
  1221. PUT (tx + 4, ty - (4 + ttt)), can2
  1222. FOR tt = 1 TO 50
  1223. SOUND (RND * 100) + 40, .03
  1224. NEXT tt
  1225. PUT (tx - (8 + ttt), ty), wheel1
  1226. PUT (tx + 9 + ttt, ty), wheel1
  1227. PUT (tx, ty + 4 + ttt), dome
  1228. PUT (tx + 4, ty - (4 + ttt)), can2
  1229.  
  1230. NEXT ttt
  1231. GOTO fireing
  1232.  
  1233.  
  1234. k2:
  1235. PUT (tx, ty - 4), wheel3
  1236. PUT (tx, ty + 5), wheel3
  1237. PUT (tx, ty), dome
  1238. PUT (tx + 8, ty + 4), can1
  1239.  
  1240. FOR ttt = 0 TO 12 STEP 4
  1241.  
  1242. PUT (tx, ty - (4 + ttt)), wheel2
  1243. PUT (tx, ty + 5 + ttt), wheel4
  1244. PUT (tx - (1 + ttt), ty), dome
  1245. PUT (tx + 8 + ttt, ty + 4), can2
  1246. FOR tt = 1 TO 50
  1247. SOUND (RND * 100) + 40, .03
  1248. NEXT tt
  1249. PUT (tx, ty - (4 + ttt)), wheel2
  1250. PUT (tx, ty + 5 + ttt), wheel4
  1251. PUT (tx - (1 + ttt), ty), dome
  1252. PUT (tx + 8 + ttt, ty + 4), can2
  1253.  
  1254. PUT (tx, ty - (5 + ttt)), wheel1
  1255. PUT (tx, ty + 6 + ttt), wheel1
  1256. PUT (tx - (2 + ttt), ty), dome
  1257. PUT (tx + 9 + ttt, ty + 4), can1
  1258. FOR tt = 1 TO 50
  1259. SOUND (RND * 100) + 40, .03
  1260. NEXT tt
  1261. PUT (tx, ty - (5 + ttt)), wheel1
  1262. PUT (tx, ty + 6 + ttt), wheel1
  1263. PUT (tx - (2 + ttt), ty), dome
  1264. PUT (tx + 9 + ttt, ty + 4), can1
  1265.  
  1266. PUT (tx, ty - (6 + ttt)), wheel4
  1267. PUT (tx, ty + 7 + ttt), wheel2
  1268. PUT (tx - (3 + ttt), ty), dome
  1269. PUT (tx + 10 + ttt, ty + 4), can2
  1270. FOR tt = 1 TO 50
  1271. SOUND (RND * 100) + 40, .03
  1272. NEXT tt
  1273. PUT (tx, ty - (6 + ttt)), wheel4
  1274. PUT (tx, ty + 7 + ttt), wheel2
  1275. PUT (tx - (3 + ttt), ty), dome
  1276. PUT (tx + 10 + ttt, ty + 4), can2
  1277.  
  1278. PUT (tx, ty - (7 + ttt)), wheel3
  1279. PUT (tx, ty + 8 + ttt), wheel3
  1280. PUT (tx - (4 + ttt), ty), dome
  1281. PUT (tx + 11 + ttt, ty + 4), can1
  1282. FOR tt = 1 TO 50
  1283. SOUND (RND * 100) + 40, .03
  1284. NEXT tt
  1285. PUT (tx, ty - (7 + ttt)), wheel3
  1286. PUT (tx, ty + 8 + ttt), wheel3
  1287. PUT (tx - (4 + ttt), ty), dome
  1288. PUT (tx + 11 + ttt, ty + 4), can1
  1289. NEXT ttt
  1290. GOTO fireing
  1291.  
  1292.  
  1293. k3:
  1294. PUT (tx - 4, ty), wheel1
  1295. PUT (tx + 5, ty), wheel1
  1296. PUT (tx + 4, ty + 8), can2
  1297. PUT (tx, ty), dome
  1298.  
  1299. FOR ttt = 0 TO 12 STEP 4
  1300. PUT (tx - (5 + ttt), ty), wheel2
  1301. PUT (tx + 6 + ttt, ty), wheel4
  1302. PUT (tx, ty - (1 + ttt)), dome
  1303. PUT (tx + 4, ty + (9 + ttt)), can1
  1304. FOR tt = 1 TO 50
  1305. SOUND (RND * 100) + 40, .03
  1306. NEXT tt
  1307. PUT (tx - (5 + ttt), ty), wheel2
  1308. PUT (tx + 6 + ttt, ty), wheel4
  1309. PUT (tx, ty - (1 + ttt)), dome
  1310. PUT (tx + 4, ty + (9 + ttt)), can1
  1311.  
  1312. PUT (tx - (6 + ttt), ty), wheel3
  1313. PUT (tx + 7 + ttt, ty), wheel3
  1314. PUT (tx, ty - (2 + ttt)), dome
  1315. PUT (tx + 4, ty + (10 + ttt)), can2
  1316. FOR tt = 1 TO 50
  1317. SOUND (RND * 100) + 40, .03
  1318. NEXT tt
  1319. PUT (tx - (6 + ttt), ty), wheel3
  1320. PUT (tx + 7 + ttt, ty), wheel3
  1321. PUT (tx, ty - (2 + ttt)), dome
  1322. PUT (tx + 4, ty + (10 + ttt)), can2
  1323.  
  1324. PUT (tx - (7 + ttt), ty), wheel4
  1325. PUT (tx + 8 + ttt, ty), wheel2
  1326. PUT (tx, ty - (3 + ttt)), dome
  1327. PUT (tx + 4, ty + (11 + ttt)), can1
  1328. FOR tt = 1 TO 50
  1329. SOUND (RND * 100) + 40, .03
  1330. NEXT tt
  1331. PUT (tx - (7 + ttt), ty), wheel4
  1332. PUT (tx + 8 + ttt, ty), wheel2
  1333. PUT (tx, ty - (3 + ttt)), dome
  1334. PUT (tx + 4, ty + (11 + ttt)), can1
  1335.  
  1336. PUT (tx - (8 + ttt), ty), wheel1
  1337. PUT (tx + 9 + ttt, ty), wheel1
  1338. PUT (tx, ty - (4 + ttt)), dome
  1339. PUT (tx + 4, ty + (12 + ttt)), can2
  1340. FOR tt = 1 TO 50
  1341. SOUND (RND * 100) + 40, .03
  1342. NEXT tt
  1343. PUT (tx - (8 + ttt), ty), wheel1
  1344. PUT (tx + 9 + ttt, ty), wheel1
  1345. PUT (tx, ty - (4 + ttt)), dome
  1346. PUT (tx + 4, ty + (12 + ttt)), can2
  1347. NEXT ttt
  1348. GOTO fireing
  1349.  
  1350.  
  1351. k4:
  1352. PUT (tx, ty - 4), wheel3
  1353. PUT (tx, ty + 5), wheel3
  1354. PUT (tx, ty), dome
  1355. PUT (tx, ty + 4), can1
  1356.  
  1357. FOR ttt = 0 TO 12 STEP 4
  1358.  
  1359. PUT (tx, ty - (4 + ttt)), wheel2
  1360. PUT (tx, ty + 5 + ttt), wheel4
  1361. PUT (tx - (1 + ttt), ty), dome
  1362. PUT (tx + 8 + ttt, ty + 4), can2
  1363. FOR tt = 1 TO 50
  1364. SOUND (RND * 100) + 40, .03
  1365. NEXT tt
  1366. PUT (tx, ty - (4 + ttt)), wheel2
  1367. PUT (tx, ty + 5 + ttt), wheel4
  1368. PUT (tx - (1 + ttt), ty), dome
  1369. PUT (tx + 8 + ttt, ty + 4), can2
  1370.  
  1371. PUT (tx, ty - (5 + ttt)), wheel1
  1372. PUT (tx, ty + 6 + ttt), wheel1
  1373. PUT (tx - (2 + ttt), ty), dome
  1374. PUT (tx + 9 + ttt, ty + 4), can1
  1375. FOR tt = 1 TO 50
  1376. SOUND (RND * 100) + 40, .03
  1377. NEXT tt
  1378. PUT (tx, ty - (5 + ttt)), wheel1
  1379. PUT (tx, ty + 6 + ttt), wheel1
  1380. PUT (tx - (2 + ttt), ty), dome
  1381. PUT (tx + 9 + ttt, ty + 4), can1
  1382.  
  1383. PUT (tx, ty - (6 + ttt)), wheel4
  1384. PUT (tx, ty + 7 + ttt), wheel2
  1385. PUT (tx - (3 + ttt), ty), dome
  1386. PUT (tx + 10 + ttt, ty + 4), can2
  1387. FOR tt = 1 TO 50
  1388. SOUND (RND * 100) + 40, .03
  1389. NEXT tt
  1390. PUT (tx, ty - (6 + ttt)), wheel4
  1391. PUT (tx, ty + 7 + ttt), wheel2
  1392. PUT (tx - (3 + ttt), ty), dome
  1393. PUT (tx + 10 + ttt, ty + 4), can2
  1394.  
  1395. PUT (tx, ty - (7 + ttt)), wheel3
  1396. PUT (tx, ty + 8 + ttt), wheel3
  1397. PUT (tx - (4 + ttt), ty), dome
  1398. PUT (tx + 11 + ttt, ty + 4), can1
  1399. FOR tt = 1 TO 50
  1400. SOUND (RND * 100) + 40, .03
  1401. NEXT tt
  1402. PUT (tx, ty - (7 + ttt)), wheel3
  1403. PUT (tx, ty + 8 + ttt), wheel3
  1404. PUT (tx - (4 + ttt), ty), dome
  1405. PUT (tx + 11 + ttt, ty + 4), can1
  1406. NEXT ttt
  1407. GOTO fireing
  1408.  
  1409.  
  1410. fireing:
  1411. LINE (tx + 1, ty)-(tx + 8, ty + 3), 0, BF
  1412. FOR t = 1 TO 10
  1413.  
  1414. PUT (tx, ty - 5), fire1
  1415. FOR tt = 1 TO 40
  1416. SOUND (RND * 1000) + 40, .03
  1417. NEXT tt
  1418. PUT (tx, ty - 5), fire1
  1419. PUT (tx, ty - 5), fire2
  1420. FOR tt = 1 TO 40
  1421. SOUND (RND * 1000) + 40, .03
  1422. NEXT tt
  1423. PUT (tx, ty - 5), fire2
  1424. PUT (tx, ty - 5), fire3
  1425. FOR tt = 1 TO 40
  1426. SOUND (RND * 1000) + 40, .03
  1427. NEXT tt
  1428. PUT (tx, ty - 5), fire3
  1429. NEXT t
  1430.  
  1431. fadeoff
  1432. lives = lives - 1
  1433. IF lives < 0 THEN lose = 1
  1434.  
  1435. END SUB
  1436.  
  1437. SUB levels
  1438.  
  1439. CLS
  1440. endl = 0
  1441. done = 0
  1442. dead = 0
  1443. going = 0
  1444. putted = 0
  1445. explode = 0
  1446.  
  1447. FOR t = 1 TO 5
  1448. rbul(t) = 0
  1449. bon(t) = 0
  1450. ron(t) = 0
  1451. von(t) = 0
  1452. hon(t) = 0
  1453. NEXT t
  1454.  
  1455. FOR q = 16 TO 20
  1456. red(q) = 0
  1457. blue(q) = 0
  1458. green(q) = 0
  1459. col
  1460. NEXT q
  1461.  
  1462. LINE (0, 10)-(320, 200), 16, BF
  1463. LINE (5, 15)-(314, 194), 0, BF
  1464. PRESET (0, 10)
  1465. PRESET (0, 199)
  1466. PRESET (319, 10)
  1467. PRESET (319, 199)
  1468.  
  1469. q = 3
  1470. red(3) = 0
  1471. blue(3) = 0
  1472. green(3) = 0
  1473. col
  1474.  
  1475. COLOR 3
  1476. LOCATE 10, 17
  1477. PRINT "Level"; level
  1478. FOR t = 1 TO 60 STEP 3
  1479. red(3) = t
  1480. blue(3) = t
  1481. green(3) = t
  1482. col
  1483. NEXT t
  1484. SLEEP 2
  1485. FOR t = 60 TO 1 STEP -3
  1486. red(3) = t
  1487. blue(3) = t
  1488. green(3) = t
  1489. col
  1490. NEXT t
  1491. LOCATE 10, 17
  1492. PRINT "         "
  1493.  
  1494. IF level = 1 THEN GOTO lev1
  1495. IF level = 2 THEN GOTO lev2
  1496. IF level = 3 THEN GOTO lev3
  1497. IF level = 4 THEN GOTO lev4
  1498. IF level = 5 THEN GOTO lev5
  1499. IF level = 6 THEN GOTO lev6
  1500. IF level = 7 THEN GOTO lev7
  1501. IF level = 8 THEN GOTO lev8
  1502. IF level = 9 THEN GOTO lev9
  1503. IF level = 10 THEN GOTO lev20
  1504. COLOR 7
  1505. END
  1506.  
  1507. lev1:
  1508. tx = 10
  1509. ty = 50
  1510. tdir = 3
  1511. gx = 40
  1512. gy = 170
  1513. rshspd = 3
  1514.  
  1515. ron(1) = 1
  1516. rx(1) = 160
  1517. ry(1) = 30
  1518. ron(2) = 1
  1519. rx(2) = 100
  1520. ry(2) = 50
  1521. CALL gucko(40, 15, 50, 90)
  1522. CALL gucko(300, 20, 313, 120)
  1523. CALL gucko(120, 140, 140, 164)
  1524. LINE (51, 15)-(55, 90), 16, BF
  1525. LINE (250, 15)-(254, 160), 16, BF
  1526. LINE (170, 200)-(174, 100), 16, BF
  1527. LINE (5, 150)-(130, 154), 16, BF
  1528. GOTO levend
  1529.  
  1530. lev2:
  1531. tx = 160
  1532. ty = 25
  1533. tdir = 4
  1534. gx = 80
  1535. gy = 110
  1536. rshspd = 3
  1537.  
  1538. ron(1) = 1
  1539. rx(1) = 125
  1540. ry(1) = 130
  1541.  
  1542. ron(2) = 1
  1543. rx(2) = 180
  1544. ry(2) = 170
  1545.  
  1546. ron(3) = 1
  1547. rx(3) = 290
  1548. ry(3) = 100
  1549.  
  1550. LINE (180, 15)-(184, 50), 16, BF
  1551. LINE (50, 46)-(180, 50), 16, BF
  1552. LINE (50, 46)-(54, 150), 16, BF
  1553. LINE (50, 146)-(160, 150), 16, BF
  1554. LINE (115, 150)-(119, 80), 16, BF
  1555. LINE (156, 150)-(160, 100), 16, BF
  1556. LINE (250, 200)-(254, 50), 16, BF
  1557. GOTO levend
  1558.  
  1559. lev3:
  1560. tx = 20
  1561. ty = 30
  1562. tdir = 2
  1563. gx = 80
  1564. gy = 95
  1565. rshspd = 3.5
  1566.  
  1567. ron(1) = 1
  1568. rx(1) = 100
  1569. ry(1) = 100
  1570. ron(2) = 1
  1571. rx(2) = 160
  1572. ry(2) = 27
  1573. ron(3) = 1
  1574. rx(3) = 20
  1575. ry(3) = 160
  1576.  
  1577. LINE (50, 50)-(200, 160), 16, BF
  1578. LINE (55, 55)-(195, 155), 0, BF
  1579. LINE (195, 150)-(200, 120), 0, BF
  1580. CALL gucko(230, 70, 300, 110)
  1581. GOTO levend
  1582.  
  1583. lev4:
  1584. tx = 20
  1585. ty = 30
  1586. tdir = 2
  1587. gx = 230
  1588. gy = 70
  1589. rshspd = 3.5
  1590. ron(1) = 1
  1591. rx(1) = 175
  1592. ry(1) = 40
  1593. ron(2) = 1
  1594. rx(2) = 250
  1595. ry(2) = 130
  1596. von(1) = 1
  1597. vy1(1) = 88
  1598. vy2(1) = 147
  1599. vy(1) = 90
  1600. vx(1) = 100
  1601. vw(1) = 1
  1602. von(2) = 1
  1603. vy1(2) = 88
  1604. vy2(2) = 147
  1605. vy(2) = 130
  1606. vx(2) = 130
  1607. vw(2) = 2
  1608. CALL gucko(15, 100, 90, 120)
  1609. CALL iceo(293, 102, 21, .2)
  1610. LINE (200, 15)-(204, 160), 16, BF
  1611. LINE (200, 100)-(271, 104), 16, BF
  1612. LINE (160, 15)-(164, 130), 16, BF
  1613. LINE (200, 160)-(100, 156), 16, BF
  1614. LINE (100, 80)-(160, 84), 16, BF
  1615. GOTO levend
  1616.  
  1617. lev5:
  1618. tx = 20
  1619. ty = 30
  1620. tdir = 3
  1621. gx = 220
  1622. gy = 80
  1623. rshspd = 3
  1624. ron(1) = 1
  1625. rx(1) = 230
  1626. ry(1) = 30
  1627. ron(2) = 1
  1628. rx(2) = 118
  1629. ry(2) = 100
  1630. ron(3) = 1
  1631. rx(3) = 170
  1632. ry(3) = 80
  1633. hon(1) = 1
  1634. hx1(1) = 100
  1635. hx2(1) = 290
  1636. hx(1) = 100
  1637. hy(1) = 50
  1638. hz(1) = 1
  1639. hon(2) = 1
  1640. hx1(2) = 100
  1641. hx2(2) = 290
  1642. hx(2) = 121
  1643. hy(2) = 50
  1644. hz(2) = 1
  1645. hon(3) = 2
  1646. hx1(3) = 205
  1647. hx2(3) = 240
  1648. hx(3) = 215
  1649. hy(3) = 75
  1650. hz(3) = .5
  1651. CALL iceo(200, 182, 38, .4)
  1652. LINE (170, 195)-(225, 200), 16, BF
  1653. LINE (200, 50)-(250, 100), 16, BF
  1654. LINE (205, 55)-(245, 95), 0, BF
  1655. LINE (110, 55)-(114, 195), 16, BF
  1656. LINE (130, 55)-(134, 169), 16, BF
  1657. LINE (134, 166)-(320, 169), 16, BF
  1658. GOTO levend
  1659.  
  1660. lev6:
  1661. tx = 20
  1662. ty = 170
  1663. tdir = 2
  1664. gx = 100
  1665. gy = 100
  1666. rshspd = 7
  1667.  
  1668. FOR t = 1 TO 5
  1669. ron(t) = 1
  1670. NEXT t
  1671.  
  1672. rx(1) = 300
  1673. ry(1) = 30
  1674.  
  1675. rx(2) = 280
  1676. ry(2) = 60
  1677.  
  1678. rx(3) = 260
  1679. ry(3) = 90
  1680.  
  1681. rx(4) = 240
  1682. ry(4) = 120
  1683.  
  1684. rx(5) = 220
  1685. ry(5) = 150
  1686.  
  1687. LINE (5, 15)-(314, 16), 16, B
  1688. LINE (312, 15)-(314, 200), 16, BF
  1689.  
  1690. LINE (5, 15)-(314, 194), 16, B
  1691. LINE (6, 16)-(313, 193), 16, B
  1692.  
  1693. LINE (180, 200)-(190, 50), 16, BF
  1694. LINE (5, 15)-(15, 150), 20, BF
  1695. LINE (50, 184)-(179, 194), 20, BF
  1696.  
  1697. FOR t = 10 TO 190 STEP 3
  1698. LINE (t, 20)-(t + 30, 50), 20
  1699. NEXT t
  1700.  
  1701. CALL iceo(105, 105, 50, 1)
  1702. CIRCLE (105, 105), 20, 0
  1703. PAINT (105, 105), 0, 0
  1704. GOTO levend
  1705.  
  1706. lev7:
  1707. tx = 160
  1708. ty = 100
  1709. tdir = 4
  1710. gx = 9
  1711. gy = 30
  1712. rshspd = 4
  1713.  
  1714. ron(1) = 1
  1715. rx(1) = 30
  1716. ry(1) = 20
  1717.  
  1718. hon(1) = 2
  1719. hx1(1) = 50
  1720. hx2(1) = 230
  1721. hx(1) = 230
  1722. hy(1) = 95
  1723. hz(1) = -1
  1724.  
  1725. von(1) = 1
  1726. vy1(1) = 70
  1727. vy2(1) = 135
  1728. vy(1) = 70
  1729. vx(1) = 130
  1730. vw(1) = 1
  1731.  
  1732. von(2) = 2
  1733. vy1(2) = 60
  1734. vy2(2) = 125
  1735. vy(2) = 95
  1736. vx(2) = 100
  1737. vw(2) = -1
  1738.  
  1739.  
  1740. LINE (175, 90)-(179, 120), 16, BF
  1741. LINE (50, 89)-(175, 94), 16, BF
  1742. LINE (50, 116)-(175, 121), 16, BF
  1743. LINE (50, 15)-(54, 90), 16, BF
  1744. LINE (50, 120)-(54, 200), 16, BF
  1745. LINE (24, 15)-(28, 170), 16, BF
  1746. LINE (314, 90)-(320, 102), 0, BF
  1747.  
  1748. GOTO levend
  1749.  
  1750. lev8:
  1751. tx = 30
  1752. ty = 95
  1753. tdir = 2
  1754. gx = 300
  1755. gy = 35
  1756. rshspd = 5
  1757.  
  1758. FOR t = 1 TO 5
  1759. von(t) = 2
  1760. vy1(t) = 50
  1761. vy2(t) = 150
  1762. vy(t) = 70
  1763. vx(t) = 95 + (6 * t)
  1764. vw(t) = 1
  1765. LINE (95 + (6 * t), 15)-(99 + (6 * t), 200), 16, BF
  1766. NEXT t
  1767.  
  1768. vy(5) = 120
  1769. vw(5) = .5
  1770.  
  1771. LINE (320, 60)-(150, 66), 16, BF
  1772. LINE (314, 30)-(320, 50), 0, BF
  1773. LINE (150, 66)-(156, 180), 16, BF
  1774.  
  1775.  
  1776. ron(1) = 1
  1777. rx(1) = 250
  1778. ry(1) = 150
  1779. ron(2) = 1
  1780. rx(2) = 280
  1781. ry(2) = 150
  1782.  
  1783. GOTO levend
  1784.  
  1785. lev9:
  1786. tx = 10
  1787. ty = 20
  1788. tdir = 1
  1789. gx = 137
  1790. gy = 147
  1791. rshspd = 4
  1792.  
  1793. FOR t = 40 TO 200 STEP 40
  1794. LINE (t, 15)-(t + 5, 175), 16, BF
  1795. NEXT t
  1796. FOR t = 50 TO 170 STEP 40
  1797. LINE (5, t)-(200, t + 5), 16, BF
  1798. NEXT t
  1799. LINE (40, 25)-(165, 35), 20, BF
  1800. LINE (178, 50)-(188, 56), 0, BF
  1801. LINE (178, 90)-(188, 96), 0, BF
  1802. LINE (165, 110)-(120, 120), 20, BF
  1803. LINE (95, 130)-(105, 136), 0, BF
  1804. LINE (86, 145)-(40, 155), 20, BF
  1805. LINE (65, 130)-(75, 194), 20, BF
  1806. LINE (15, 130)-(25, 136), 0, BF
  1807. LINE (40, 105)-(46, 115), 0, BF
  1808. LINE (55, 90)-(65, 96), 0, BF
  1809. LINE (80, 65)-(125, 75), 20, BF
  1810. LINE (136, 90)-(146, 96), 0, BF
  1811. LINE (135, 130)-(145, 136), 0, BF
  1812. LINE (130, 154)-(155, 194), 20, BF
  1813. PSET (142, 157), 0
  1814. DRAW "e1 l2 h1 r4 e1 l7 f4 e4"
  1815. LINE (135, 50)-(145, 56), 0, BF
  1816. LINE (200, 25)-(206, 35), 0, BF
  1817.  
  1818. FOR t = 1 TO 3
  1819. ron(t) = 1
  1820. rx(t) = 178
  1821. ry(t) = 105
  1822. NEXT t
  1823.  
  1824.  
  1825. GOTO levend
  1826.  
  1827. lev20:
  1828. tx = 15
  1829. ty = 20
  1830. tdir = 2
  1831. gx = 118
  1832. gy = 20
  1833. rshspd = 5
  1834.  
  1835. LINE (5, 30)-(65, 90), 16
  1836. LINE (5, 35)-(62, 92), 16
  1837. LINE (65, 90)-(62, 92), 16
  1838. PAINT (7, 34), 16, 16
  1839. LINE (30, 15)-(107, 92), 16
  1840. LINE (35, 15)-(110, 90), 16
  1841. LINE (110, 90)-(65, 135), 16
  1842. PAINT (37, 19), 16, 16
  1843. LINE (65, 135)-(25, 95), 16
  1844. LINE (25, 95)-(28, 92), 16
  1845. LINE (28, 92)-(65, 129), 16
  1846. LINE (65, 129)-(105, 89), 16
  1847. PAINT (28, 93), 16, 16
  1848. LINE (25, 95)-(29, 180), 16, BF
  1849. CIRCLE (130, 180), 100, 16, 0, 3.14, .5
  1850. CIRCLE (130, 180), 90, 16, 0, 3.14, .48
  1851. LINE (29, 180)-(40, 180), 16
  1852. LINE (220, 180)-(230, 180), 16
  1853. PAINT (130, 135), 20, 16
  1854. CIRCLE (130, 180), 90, 20, 0, 3.14, .48
  1855. CIRCLE (130, 190), 70, 16, , , .4
  1856. PAINT (130, 180), 20, 16
  1857. CIRCLE (130, 190), 70, 20, 6.15, 3.3, .4
  1858. LINE (128, 162)-(132, 200), 16, BF
  1859. LINE (62, 41)-(320, 47), 16, BF
  1860. LINE (240, 41)-(290, 47), 0, BF
  1861. LINE (5, 180)-(40, 180), 20
  1862. LINE (70, 15)-(70, 40), 16
  1863. PAINT (60, 20), 20, 16
  1864. LINE (70, 15)-(70, 40), 0
  1865. CALL gucko(200, 60, 300, 63)
  1866. CALL gucko(200, 47, 220, 60)
  1867.  
  1868.  
  1869. FOR t = 1 TO 3
  1870. hon(t) = 1
  1871. hx1(t) = 7
  1872. hx2(t) = 120
  1873. hx(t) = 100
  1874. hy(t) = 40 + (t * 22)
  1875. hz(t) = 3 - (t / 3)
  1876. NEXT t
  1877.  
  1878. hon(4) = 2
  1879. hx1(4) = 7
  1880. hx2(4) = 300
  1881. hx(4) = 100
  1882. hy(4) = 140
  1883. hz(4) = 1
  1884.  
  1885. von(1) = 1
  1886. vy1(1) = 100
  1887. vy2(1) = 190
  1888. vy(1) = 150
  1889. vx(1) = 200
  1890. vw(1) = 1
  1891.  
  1892. FOR t = 1 TO 3
  1893. ron(t) = 1
  1894. NEXT t
  1895. rx(1) = 15
  1896. ry(1) = 130
  1897. rx(2) = 80
  1898. ry(2) = 20
  1899. rx(3) = 300
  1900. ry(3) = 170
  1901.  
  1902.  
  1903.  
  1904. GOTO levend
  1905.  
  1906.  
  1907. levend:
  1908. fadeon
  1909. IF tdir = 1 THEN PUT (tx, ty), tanku
  1910. IF tdir = 2 THEN PUT (tx, ty), tankr
  1911. IF tdir = 3 THEN PUT (tx, ty), tankd
  1912. IF tdir = 4 THEN PUT (tx, ty), tankl
  1913. FOR t = 1 TO 5
  1914. IF hon(t) = 1 THEN PUT (hx(t), hy(t)), hwall
  1915. IF hon(t) = 2 THEN PUT (hx(t), hy(t)), vwall
  1916. IF von(t) = 1 THEN PUT (vx(t), vy(t)), hwall
  1917. IF von(t) = 2 THEN PUT (vx(t), vy(t)), vwall
  1918. IF ron(t) = 1 THEN PUT (rx(t), ry(t)), robot
  1919. NEXT t
  1920. PUT (gx, gy), gl
  1921.  
  1922. COLOR 15
  1923. LOCATE 1, 1
  1924. PRINT "Level"; level
  1925. LOCATE 1, 13
  1926. PRINT "Tanks"; lives
  1927. LOCATE 1, 25
  1928. PRINT "Score"; score
  1929.  
  1930.  
  1931. FOR t = 1 TO 20
  1932. a$ = INKEY$
  1933. NEXT t
  1934.  
  1935. END SUB
  1936.  
  1937. SUB moverobot
  1938. FOR t = 1 TO 5
  1939. IF ron(t) = 1 THEN  ELSE GOTO robotend
  1940.  
  1941. rwalk(t) = rwalk(t) - 1
  1942. IF rwalk(t) < 0 THEN  ELSE GOTO robotwalk
  1943. rwalk(t) = CINT(RND * 10) + 2
  1944. rdir(t) = CINT(RND * 3) + 1
  1945. rw(t) = 0
  1946. rz(t) = 0
  1947. IF rdir(t) = 4 THEN rw(t) = -1
  1948. IF rdir(t) = 3 THEN rz(t) = 1
  1949. IF rdir(t) = 2 THEN rw(t) = 1
  1950. IF rdir(t) = 1 THEN rz(t) = -1
  1951. robotwalk:
  1952. SELECT CASE rdir(t)
  1953. CASE 4: p = POINT(rx(t) + 5, ry(t) - 1)
  1954. CASE 3: p = POINT(rx(t) + 11, ry(t) + 7)
  1955. CASE 2: p = POINT(rx(t) + 5, ry(t) + 16)
  1956. CASE 1: p = POINT(rx(t) - 1, ry(t) + 7)
  1957. END SELECT
  1958. IF p = 0 THEN  ELSE rwalk(t) = 0
  1959. IF rwalk(t) = 0 THEN GOTO robotend ELSE
  1960.  
  1961. PUT (rx(t), ry(t)), robot
  1962. rx(t) = rx(t) + rz(t)
  1963. ry(t) = ry(t) + rw(t)
  1964. PUT (rx(t), ry(t)), robot
  1965.  
  1966. robotend:
  1967. NEXT t
  1968. END SUB
  1969.  
  1970. SUB movetank
  1971. pauseplay
  1972.  
  1973. a$ = UCASE$(INKEY$)
  1974. IF a$ = CHR$(27) THEN quit = 1
  1975. IF a$ = "C" THEN IF contmode = 1 THEN contmode = 2 ELSE contmode = 1
  1976. otdir = tdir
  1977. ogo = going
  1978.  
  1979. IF icy = 1 THEN IF going = 1 THEN GOTO iced ELSE
  1980.  
  1981. IF contmode = 1 THEN  ELSE GOTO mode2
  1982. IF a$ = CHR$(0) + "H" THEN going = 1
  1983. IF a$ = CHR$(0) + "P" THEN going = 0
  1984. IF guck = 1 THEN going = 0 ELSE
  1985. findtdir
  1986. IF a$ = CHR$(0) + "K" THEN tdir = tdir - 1
  1987. IF a$ = CHR$(0) + "M" THEN tdir = tdir + 1
  1988. IF tdir = 5 THEN tdir = 1
  1989. IF tdir = 0 THEN tdir = 4
  1990. GOTO movecont
  1991.  
  1992. mode2:
  1993. IF a$ = "A" THEN going = 1
  1994. IF a$ = "Z" THEN going = 0
  1995. IF guck = 1 THEN going = 0 ELSE
  1996. findtdir
  1997. IF a$ = CHR$(0) + "H" THEN tdir = 1
  1998. IF a$ = CHR$(0) + "P" THEN tdir = 3
  1999. IF a$ = CHR$(0) + "K" THEN tdir = 4
  2000. IF a$ = CHR$(0) + "M" THEN tdir = 2
  2001.  
  2002. movecont:
  2003.  
  2004. IF a$ = " " THEN tshoot
  2005.  
  2006. iced:
  2007. icy = 0
  2008. IF otdir = 1 THEN PUT (tx, ty), tanku
  2009. IF otdir = 2 THEN PUT (tx, ty), tankr
  2010. IF otdir = 3 THEN PUT (tx, ty), tankd
  2011. IF otdir = 4 THEN PUT (tx, ty), tankl
  2012. IF guck = 1 THEN GOTO skp
  2013. tx = tx + tz
  2014. ty = ty + tw
  2015. skp:
  2016. guck = 0
  2017. IF tdir = 1 THEN PUT (tx, ty), tanku
  2018. IF tdir = 2 THEN PUT (tx, ty), tankr
  2019. IF tdir = 3 THEN PUT (tx, ty), tankd
  2020. IF tdir = 4 THEN PUT (tx, ty), tankl
  2021.  
  2022. SELECT CASE tdir
  2023. CASE 1: p = POINT(tx, ty - 1)
  2024.         pp = POINT(tx + 10, ty - 1)
  2025. CASE 2: p = POINT(tx + 11, ty)
  2026.         pp = POINT(tx + 11, ty + 10)
  2027. CASE 3: p = POINT(tx, ty + 11)
  2028.         pp = POINT(tx + 10, ty + 11)
  2029. CASE 4: p = POINT(tx - 1, ty)
  2030.         pp = POINT(tx - 1, ty + 10)
  2031. END SELECT
  2032.  
  2033. SELECT CASE p
  2034. CASE 16: dead = 1
  2035. CASE 17: guck = 1
  2036. CASE 18: goal
  2037. CASE 19: expmine 1
  2038. CASE 20: icy = 1
  2039. END SELECT
  2040.  
  2041. SELECT CASE pp
  2042. CASE 16: dead = 1
  2043. CASE 17: guck = 1
  2044. CASE 18: goal
  2045. CASE 19: expmine 2
  2046. CASE 20: icy = 1
  2047. END SELECT
  2048.  
  2049. IF tx > 308 THEN endl = 1
  2050.  
  2051. END SUB
  2052.  
  2053. SUB movewall
  2054. FOR t = 1 TO 5
  2055. IF hon(t) = 0 THEN GOTO noh
  2056. IF hon(t) = 1 THEN PUT (hx(t), hy(t)), hwall ELSE PUT (hx(t), hy(t)), vwall
  2057. hx(t) = hx(t) + hz(t)
  2058. IF hx(t) > hx2(t) THEN hz(t) = -hz(t)
  2059. IF hx(t) < hx1(t) THEN hz(t) = -hz(t)
  2060. IF hon(t) = 1 THEN PUT (hx(t), hy(t)), hwall ELSE PUT (hx(t), hy(t)), vwall
  2061. noh:
  2062. IF von(t) = 0 THEN GOTO nov
  2063. IF von(t) = 1 THEN PUT (vx(t), vy(t)), hwall ELSE PUT (vx(t), vy(t)), vwall
  2064. vy(t) = vy(t) + vw(t)
  2065. IF vy(t) > vy2(t) THEN vw(t) = -vw(t)
  2066. IF vy(t) < vy1(t) THEN vw(t) = -vw(t)
  2067. IF von(t) = 1 THEN PUT (vx(t), vy(t)), hwall ELSE PUT (vx(t), vy(t)), vwall
  2068. nov:
  2069. NEXT t
  2070.  
  2071.  
  2072. END SUB
  2073.  
  2074. SUB mtbul
  2075. FOR t = 1 TO 5
  2076. IF bon(t) = 0 THEN  ELSE GOTO yesbul
  2077. FOR tt = 1 TO 10
  2078. NEXT tt
  2079. GOTO mtbend
  2080.  
  2081. yesbul:
  2082. FOR tt = 1 TO 5
  2083. IF ron(tt) = 1 THEN  ELSE GOTO noton
  2084. IF ABS(bx(t) - (rx(tt) + 5)) < 7 THEN IF ABS(by(t) - (ry(tt) + 7)) < 9 THEN ron(tt) = 0
  2085. IF ron(tt) = 0 THEN  ELSE GOTO noton
  2086. PUT (rx(tt), ry(tt)), robot
  2087.  
  2088. FOR snd = 100 TO 1000 STEP 50
  2089. SOUND snd, .03
  2090. NEXT snd
  2091.  
  2092. bon(t) = 0
  2093. score = score + 500
  2094. LOCATE 1, 25
  2095. PRINT "Score"; score
  2096.  
  2097. noton:
  2098. NEXT tt
  2099. IF bx(t) > 315 THEN bon(t) = 0
  2100. p = POINT(bx(t) + bz(t), by(t) + bw(t))
  2101. IF p = 16 THEN bon(t) = 0
  2102. IF p = 20 THEN bon(t) = 0
  2103. PUT (bx(t), by(t)), bul
  2104. IF bon(t) = 1 THEN  ELSE GOTO mtbend
  2105. bx(t) = bx(t) + bz(t)
  2106. by(t) = by(t) + bw(t)
  2107. p = POINT(bx(t), by(t))
  2108. IF p = 16 THEN bon(t) = 0
  2109. IF p = 20 THEN bon(t) = 0
  2110. IF bon(t) = 0 THEN  ELSE PUT (bx(t), by(t)), bul
  2111. mtbend:
  2112. NEXT t
  2113. END SUB
  2114.  
  2115. SUB pauseplay
  2116.  
  2117. 'FOR t = 1 TO 40000
  2118. 'NEXT t
  2119.  
  2120. t = TIMER + .01
  2121. WHILE TIMER < t
  2122. WEND
  2123.  
  2124. END SUB
  2125.  
  2126. SUB robotsht
  2127. FOR t = 1 TO 5
  2128. IF ron(t) = 1 THEN  ELSE IF ron(t) = 0 THEN IF rbul(t) = 1 THEN  ELSE GOTO rcont5 ELSE GOTO rcont5
  2129. IF rbul(t) = 1 THEN GOTO rcont4 ELSE IF ABS(rx(t) - tx) < 7 THEN  ELSE GOTO rcont2
  2130. rbul(t) = 1
  2131. IF ry(t) > ty THEN  ELSE GOTO other1
  2132. rbw(t) = -rshspd
  2133. rbz(t) = 0
  2134. rbx(t) = rx(t) + 5
  2135. rby(t) = ry(t) - 1
  2136. PUT (rbx(t), rby(t)), bul
  2137. GOTO rcont4
  2138.  
  2139. other1:
  2140. rbw(t) = rshspd
  2141. rbz(t) = 0
  2142. rbx(t) = rx(t) + 5
  2143. rby(t) = ry(t) + 16
  2144. PUT (rbx(t), rby(t)), bul
  2145. GOTO rcont4
  2146.  
  2147. rcont2:
  2148. IF rbul(t) = 1 THEN GOTO rcont4 ELSE IF ABS(ry(t) - ty) < 9 THEN  ELSE GOTO rcont5
  2149. rbul(t) = 1
  2150. IF rx(t) > tx THEN  ELSE GOTO other2
  2151. rbw(t) = 0
  2152. rbz(t) = -rshspd
  2153. rbx(t) = rx(t) - 1
  2154. rby(t) = ry(t) + 7
  2155. PUT (rbx(t), rby(t)), bul
  2156. GOTO rcont4
  2157.  
  2158. other2:
  2159. rbw(t) = 0
  2160. rbz(t) = rshspd
  2161. rbx(t) = rx(t) + 11
  2162. rby(t) = ry(t) + 7
  2163. PUT (rbx(t), rby(t)), bul
  2164.  
  2165. rcont4:
  2166. PUT (rbx(t), rby(t)), bul
  2167. rbx(t) = rbx(t) + rbz(t)
  2168. rby(t) = rby(t) + rbw(t)
  2169. IF ABS(rbx(t) - (tx + 5)) <= 5 THEN IF ABS(rby(t) - (ty + 5)) <= 5 THEN dead = 1
  2170. p = POINT(rbx(t), rby(t))
  2171. IF p = 16 THEN rbul(t) = 0
  2172. IF p = 20 THEN rbul(t) = 0
  2173. IF ron(t) = 0 THEN IF rbul(t) = 0 THEN ron(t) = 2
  2174. IF rbul(t) = 1 THEN PUT (rbx(t), rby(t)), bul ELSE
  2175.  
  2176. rcont5:
  2177. NEXT t
  2178.  
  2179. END SUB
  2180.  
  2181. SUB robul
  2182.  
  2183. 'd = SQR(((x2 - 4) ^ 2) + ((y2 - 1) ^ 2))
  2184. 'IF d < 400 THEN  ELSE GOTO nofire1
  2185. 'adbz1 = (ABS(x2 - 4)) * 7 / d
  2186. 'adbw1 = (ABS(y2 - 4)) * 7 / d
  2187. 'adbx1 = 4
  2188. 'adby1 = 4
  2189. 'adbon1 = 1
  2190. 'PUT (adbx1, adby1), bul
  2191.  
  2192. END SUB
  2193.  
  2194. SUB rotbotcol
  2195. red(21) = CINT(RND * 33) + 30
  2196. blue(21) = CINT(RND * 33) + 30
  2197. green(21) = CINT(RND * 33) + 30
  2198. q = 21
  2199. col
  2200. END SUB
  2201.  
  2202. SUB setup
  2203. RANDOMIZE TIMER
  2204.  
  2205. p$(1) = "l8o1aao2co1l16al8al16ao2l8do1ag"
  2206. p$(2) = "gao2eo1l16al8al16al8o2fec"
  2207. p$(3) = "o1ao2eao1agebap1"
  2208. p$(4) = "l8o1aao2co1l16al8al16ao2l8do1ag"
  2209. p$(5) = "gao2eo1l16al8al16al8o2fec"
  2210. p$(6) = "o1ao2eao1agebap1"
  2211.  
  2212. p$(7) = "p8o2l8eel16el8gl16gl8gg-g-g-eel16el8gl16gl8g-do1l4a"
  2213. p$(8) = "l8o2cccl16cl8dddl16dl8deeel16dl8eel16dl8e"
  2214. p$(9) = "p8o2l8eel16el8gl16gl8gg-g-g-eel16el8gl16gl8g-do1l4a"
  2215. p$(10) = "l8o2cccl16cl8dddl16dl8deeel16dl8eel16dl8e"
  2216.  
  2217. p$(11) = "l8o1aao2co1l16al8al16ao2l8do1ag"
  2218. p$(12) = "gao2eo1l16al8al16al8o2fec"
  2219. p$(13) = "o1ao2eao1agebap1"
  2220.  
  2221. SCREEN 13
  2222. FOR q = 16 TO 22
  2223. red(q) = 0
  2224. blue(q) = 0
  2225. green(q) = 0
  2226. col
  2227. NEXT q
  2228.  
  2229. PSET (0, 8), 8
  2230. DRAW "u1 e1 r8 f1 g2 l7"
  2231. PAINT (5, 7), 7, 8
  2232. LINE (3, 3)-(6, 5), 1, BF
  2233. PRESET (3, 3)
  2234. PRESET (6, 3)
  2235. LINE (7, 4)-(10, 4), 4
  2236. GET (0, 0)-(10, 9), tank2
  2237.  
  2238. LINE (7, 4)-(10, 4), 0
  2239. LINE (7, 4)-(10, 1), 4
  2240. GET (0, 0)-(10, 9), tank3
  2241. CLS
  2242.  
  2243. LINE (0, 5)-(4, 9), 8
  2244. PSET (1, 5), 8
  2245. DRAW "e5 r1 f2 d1 g3 h2 f2 g2"
  2246. PAINT (6, 2), 7, 8
  2247. PAINT (3, 6), 15, 8
  2248. GET (0, 0)-(9, 9), finbul
  2249.  
  2250.  
  2251. CLS
  2252. LINE (0, 0)-(1, 10), 8, B
  2253. LINE (9, 0)-(10, 10), 8, B
  2254. LINE (2, 1)-(8, 9), 7, BF
  2255. LINE (5, 5)-(5, 0), 4
  2256. CIRCLE (5, 5), 2, 1
  2257. PAINT (5, 6), 1, 1
  2258. GET (0, 0)-(10, 10), tanku
  2259.  
  2260. CLS
  2261. LINE (0, 0)-(1, 10), 8, B
  2262. LINE (9, 0)-(10, 10), 8, B
  2263. LINE (2, 1)-(8, 9), 7, BF
  2264. LINE (5, 5)-(5, 10), 4
  2265. CIRCLE (5, 5), 2, 1
  2266. PAINT (5, 5), 1, 1
  2267. GET (0, 0)-(10, 10), tankd
  2268.  
  2269. CLS
  2270. LINE (0, 0)-(10, 1), 8, B
  2271. LINE (0, 10)-(10, 9), 8, B
  2272. LINE (1, 2)-(9, 8), 7, BF
  2273. LINE (5, 5)-(0, 5), 4
  2274. CIRCLE (5, 5), 2, 1
  2275. PAINT (5, 5), 1, 1
  2276. GET (0, 0)-(10, 10), tankl
  2277.  
  2278. CLS
  2279. LINE (0, 0)-(10, 1), 8, B
  2280. LINE (0, 10)-(10, 9), 8, B
  2281. LINE (1, 2)-(9, 8), 7, BF
  2282. LINE (5, 5)-(10, 5), 4
  2283. CIRCLE (5, 5), 2, 1
  2284. PAINT (5, 5), 1, 1
  2285. GET (0, 0)-(10, 10), tankr
  2286.  
  2287. CLS
  2288. PSET (0, 0), 14
  2289. GET (0, 0)-(0, 0), bul
  2290.  
  2291. CLS
  2292. LINE (0, 0)-(20, 4), 16, BF
  2293. GET (0, 0)-(20, 4), hwall
  2294.  
  2295. CLS
  2296. LINE (0, 0)-(4, 20), 16, BF
  2297. GET (0, 0)-(4, 20), vwall
  2298.  
  2299. CLS
  2300. PSET (5, 0), 18
  2301. DRAW "f5 g5 h5 e5"
  2302. PAINT (5, 5), 18, 18
  2303. GET (0, 0)-(10, 10), gl
  2304.  
  2305. CLS
  2306. CIRCLE (2, 2), 2, 19
  2307. PAINT (2, 2), 19, 19
  2308. GET (0, 0)-(5, 5), mine
  2309.  
  2310. CLS
  2311.  
  2312. 'robot colors
  2313. r(21) = CINT(RND * 33) + 30
  2314. B(21) = CINT(RND * 33) + 30
  2315. g(21) = CINT(RND * 33) + 30
  2316.  
  2317. r(22) = 63
  2318. B(22) = 0
  2319. g(22) = 0
  2320.  
  2321. r(23) = 0
  2322. B(23) = 0
  2323. g(23) = 50
  2324.  
  2325. r(24) = 0
  2326. B(24) = 0
  2327. g(24) = 40
  2328.  
  2329. r(25) = 10
  2330. B(25) = 10
  2331. g(25) = 50
  2332.  
  2333. r(26) = 30
  2334. B(26) = 30
  2335. g(26) = 55
  2336.  
  2337. r(27) = 20
  2338. B(27) = 20
  2339. g(27) = 63
  2340.  
  2341. r(28) = 30
  2342. B(28) = 0
  2343. g(28) = 60
  2344.  
  2345. r(29) = 50
  2346. B(29) = 0
  2347. g(29) = 30
  2348.  
  2349.  
  2350. FOR q = 21 TO 30
  2351. red(q) = r(q)
  2352. blue(q) = B(q)
  2353. green(q) = g(q)
  2354. col
  2355. NEXT q
  2356.  
  2357.  
  2358. '*********** ROBOT *************
  2359. 'head
  2360. LINE (1, 0)-(9, 4), 23, B
  2361. PSET (0, 2), 22
  2362. PSET (10, 2), 22
  2363. PRESET (1, 0)
  2364. PRESET (9, 0)
  2365. LINE (3, 2)-(7, 2), 21
  2366.  
  2367. 'arms
  2368. LINE (0, 7)-(0, 11), 27, B
  2369. LINE (10, 7)-(10, 11), 27, B
  2370. PSET (1, 7), 26
  2371. PSET (9, 7), 26
  2372.  
  2373. 'body
  2374. LINE (3, 5)-(7, 5), 24
  2375. LINE (2, 6)-(8, 13), 25, BF
  2376. PSET (1, 13), 26
  2377. PSET (9, 13), 26
  2378.  
  2379. LINE (0, 14)-(10, 14), 28
  2380. LINE (1, 15)-(2, 15), 29
  2381. LINE (8, 15)-(9, 15), 29
  2382.  
  2383. GET (0, 0)-(10, 15), robot
  2384.  
  2385. CLS
  2386. LINE (4, 0)-(5, 10), 8, B
  2387. GET (0, 0)-(10, 10), wheel1
  2388.  
  2389. CLS
  2390. LINE (9, 1)-(1, 9), 8
  2391. LINE (8, 1)-(1, 8), 8
  2392. LINE (9, 2)-(2, 9), 8
  2393. GET (0, 0)-(10, 10), wheel2
  2394.  
  2395. CLS
  2396. LINE (0, 4)-(10, 5), 8, B
  2397. GET (0, 0)-(10, 10), wheel3
  2398.  
  2399. CLS
  2400. LINE (1, 1)-(9, 9), 8
  2401. LINE (1, 2)-(8, 9), 8
  2402. LINE (2, 1)-(9, 8), 8
  2403. GET (0, 0)-(10, 10), wheel4
  2404.  
  2405. CLS
  2406. LINE (4, 3)-(6, 7), 1, BF
  2407. LINE (3, 4)-(7, 6), 1, BF
  2408. GET (0, 0)-(10, 10), dome
  2409.  
  2410. CLS
  2411. LINE (0, 1)-(2, 1), 4
  2412. GET (0, 0)-(2, 2), can1
  2413.  
  2414. CLS
  2415. LINE (1, 0)-(1, 2), 4
  2416. GET (0, 0)-(2, 2), can2
  2417.  
  2418. CLS
  2419. PSET (8, 9), 4
  2420. DRAW "l6 h1 u1 h1 u1 e3 u1 d1 f1 r1 e2 d2 f2 d3"
  2421. PAINT (5, 5), 12, 4
  2422. GET (0, 0)-(9, 9), fire1
  2423.  
  2424. CLS
  2425. PSET (7, 9), 4
  2426. DRAW "l5 h2 u1 e3 f1 r1 e2 u2 d1 f1 d1 f1 d2 g1 d1"
  2427. PAINT (5, 5), 12, 4
  2428. PSET (1, 1), 4
  2429. PSET (1, 2), 4
  2430. GET (0, 0)-(9, 9), fire3
  2431.  
  2432. CLS
  2433. PSET (6, 9), 4
  2434. DRAW "l4 h2 u2 e1 u2 e1 f2 d1 r1 e1 u1 e1 r1 f1 d1 g1 d3 g1"
  2435. PAINT (5, 5), 12, 4
  2436. GET (0, 0)-(9, 9), fire2
  2437.  
  2438.  
  2439. CLS
  2440.  
  2441. r(16) = 60
  2442. B(16) = 0
  2443. g(16) = 0
  2444.  
  2445. r(17) = 30
  2446. B(17) = 0
  2447. g(17) = 30
  2448.  
  2449. r(18) = 60
  2450. B(18) = 60
  2451. g(18) = 0
  2452.  
  2453. r(19) = 12
  2454. B(19) = 12
  2455. g(19) = 12
  2456.  
  2457. r(20) = 40
  2458. B(20) = 60
  2459. g(20) = 60
  2460.  
  2461.  
  2462.  
  2463. level = 1
  2464.  
  2465.  
  2466. END SUB
  2467.  
  2468. SUB title
  2469. SCREEN 13
  2470.  
  2471. quit = 0
  2472. start:
  2473. tim$ = TIME$
  2474. CLS
  2475. FOR q = 30 TO 50
  2476. red(q) = 0
  2477. blue(q) = 0
  2478. green(q) = 0
  2479. col
  2480. NEXT q
  2481.  
  2482. red(39) = 63
  2483. red(38) = 59
  2484. red(37) = 55
  2485. blue(39) = 63
  2486. blue(38) = 59
  2487. blue(37) = 55
  2488. green(39) = 63
  2489. green(38) = 59
  2490. green(37) = 55
  2491.  
  2492. FOR q = 37 TO 39
  2493. col
  2494. NEXT q
  2495.  
  2496. COLOR 40
  2497. LOCATE 22, 8
  2498. PRINT "Written by Jack Thomson"
  2499.  
  2500. CIRCLE (146, 171), 120, 41, , , .1
  2501.  
  2502. y = 5
  2503. x = -7
  2504.  
  2505. LINE (80 + x, 10 + y)-(310 + x, 10 + y), 50
  2506. LINE (80 + x, 10 + y)-(70 + x, 30 + y), 50
  2507. LINE (310 + x, 10 + y)-(300 + x, 30 + y), 50
  2508. LINE (70 + x, 30 + y)-(300 + x, 30 + y), 50
  2509.  
  2510. LINE (110 + x, 30 + y)-(60 + x, 130 + y), 50
  2511. LINE (140 + x, 30 + y)-(90 + x, 130 + y), 50
  2512. LINE (240 + x, 30 + y)-(190 + x, 130 + y), 50
  2513. LINE (270 + x, 30 + y)-(220 + x, 130 + y), 50
  2514.  
  2515. LINE (30 + x, 130 + y)-(260 + x, 130 + y), 50
  2516. LINE (30 + x, 130 + y)-(20 + x, 150 + y), 50
  2517. LINE (260 + x, 130 + y)-(250 + x, 150 + y), 50
  2518. LINE (20 + x, 150 + y)-(250 + x, 150 + y), 50
  2519.  
  2520. PAINT (100 + x, 20 + y), 50, 50
  2521. PAINT (120 + x, 40 + y), 50, 50
  2522. PAINT (40 + x, 140 + y), 50, 50
  2523. PAINT (250 + x, 40 + y), 50, 50
  2524.  
  2525.  
  2526.  
  2527.  
  2528. x = 15
  2529.  
  2530. 'R
  2531. LINE (10 + x, 30)-(10 + x, 80), 30
  2532. LINE (10 + x, 80)-(20 + x, 80), 30
  2533. LINE (20 + x, 80)-(20 + x, 60), 30
  2534. LINE (20 + x, 60)-(45 + x, 60), 30
  2535. DRAW "r1 f1 r1 f1 d1 f1"
  2536. LINE (50 + x, 65)-(50 + x, 80), 30
  2537. LINE (50 + x, 80)-(60 + x, 80), 30
  2538. LINE (60 + x, 80)-(60 + x, 39), 30
  2539. CIRCLE (50 + x, 38), 10, 30, 0, 1.57
  2540. LINE (10 + x, 30)-(50 + x, 30), 30
  2541. LINE (20 + x, 40)-(45 + x, 40), 30
  2542. LINE (20 + x, 40)-(20 + x, 50), 30
  2543. LINE (20 + x, 50)-(45 + x, 50), 30
  2544. DRAW "e1 r1 e2 u4 h2 l1 h1"
  2545. PAINT (20 + x, 35), 36, 30
  2546.  
  2547.  
  2548. 'O
  2549. LINE (70 + x, 38)-(70 + x, 72), 31
  2550. LINE (80 + x, 30)-(110 + x, 30), 31
  2551. LINE (120 + x, 38)-(120 + x, 72), 31
  2552. LINE (110 + x, 80)-(80 + x, 80), 31
  2553. CIRCLE (110 + x, 38), 10, 31, 0, 1.57
  2554. CIRCLE (110 + x, 72), 10, 31, 4.71, 0
  2555. CIRCLE (80 + x, 72), 10, 31, 3.14, 4.71
  2556. CIRCLE (80 + x, 38), 10, 31, 1.57, 3.14
  2557. LINE (80 + x, 40)-(110 + x, 70), 31, B
  2558. PRESET (80 + x, 40)
  2559. PRESET (110 + x, 40)
  2560. PRESET (80 + x, 70)
  2561. PRESET (110 + x, 70)
  2562. PAINT (75 + x, 40), 36, 31
  2563.  
  2564. 'B
  2565. LINE (130 + x, 30)-(130 + x, 80), 32
  2566. LINE (130 + x, 80)-(170 + x, 80), 32
  2567. LINE (140 + x, 70)-(140 + x, 60), 32
  2568. LINE (140 + x, 60)-(165 + x, 60), 32
  2569. DRAW "f1 r1 f2 d4 g2 l1 g1"
  2570. LINE (140 + x, 70)-(165 + x, 70), 32
  2571. CIRCLE (170 + x, 38), 10, 32, 0, 1.57
  2572. CIRCLE (170 + x, 72), 10, 32, 4.71, 0
  2573. LINE (180 + x, 38)-(180 + x, 72), 32
  2574. LINE (130 + x, 30)-(170 + x, 30), 32
  2575. LINE (140 + x, 40)-(165 + x, 40), 32
  2576. LINE (140 + x, 40)-(140 + x, 50), 32
  2577. LINE (140 + x, 50)-(165 + x, 50), 32
  2578. DRAW "e1 r1 e2 u4 h2 l1 h1"
  2579. PAINT (140 + x, 35), 36, 32
  2580.  
  2581. 'O
  2582. LINE (190 + x, 38)-(190 + x, 72), 33
  2583. LINE (200 + x, 30)-(230 + x, 30), 33
  2584. LINE (240 + x, 38)-(240 + x, 72), 33
  2585. LINE (230 + x, 80)-(200 + x, 80), 33
  2586. CIRCLE (230 + x, 38), 10, 33, 0, 1.57
  2587. CIRCLE (230 + x, 72), 10, 33, 4.71, 0
  2588. CIRCLE (200 + x, 72), 10, 33, 3.14, 4.71
  2589. CIRCLE (200 + x, 38), 10, 33, 1.57, 3.14
  2590. LINE (200 + x, 40)-(230 + x, 70), 33, B
  2591. PRESET (200 + x, 40)
  2592. PRESET (230 + x, 40)
  2593. PRESET (200 + x, 70)
  2594. PRESET (230 + x, 70)
  2595. PAINT (195 + x, 40), 36, 33
  2596.  
  2597. 'T
  2598. LINE (10 + x, 18)-(280 + x, 25), 34, B
  2599. LINE (250 + x, 25)-(260 + x, 80), 34, B
  2600. LINE (251 + x, 25)-(259 + x, 25), 0
  2601. PAINT (20 + x, 20), 36, 34
  2602.  
  2603. 'LINE (250 + x, 30)-(300 + x, 40), 34, B
  2604. 'LINE (270 + x, 40)-(280 + x, 80), 34, B
  2605. 'LINE (271 + x, 40)-(279 + x, 40), 0
  2606.  
  2607. 'FOR q = 51 TO 57
  2608. 'red(q) = 0
  2609. 'col
  2610. 'NEXT q
  2611.  
  2612. x = 20
  2613. y = 100
  2614.  
  2615. 'A
  2616. LINE (0 + x, 0 + y)-(0 + x, 39 + y), 30
  2617. LINE (0 + x, 39 + y)-(8 + x, 39 + y), 30
  2618. LINE (8 + x, 39 + y)-(8 + x, 29 + y), 30
  2619. LINE (8 + x, 29 + y)-(31 + x, 29 + y), 30
  2620. LINE (31 + x, 29 + y)-(31 + x, 39 + y), 30
  2621. LINE (31 + x, 39 + y)-(39 + x, 39 + y), 30
  2622. LINE (39 + x, 39 + y)-(39 + x, 0 + y), 30
  2623. LINE (39 + x, 0 + y)-(0 + x, 0 + y), 30
  2624. LINE (8 + x, 8 + y)-(31 + x, 21 + y), 30, B
  2625. PAINT (5 + x, 5 + y), 36, 30
  2626.  
  2627. 'T
  2628. LINE (47 + x, 0 + y)-(87 + x, 8 + y), 31, B
  2629. LINE (63 + x, 8 + y)-(71 + x, 39 + y), 31, B
  2630. LINE (64 + x, 8 + y)-(70 + x, 8 + y), 0
  2631. PAINT (50 + x, 5 + y), 36, 31
  2632.  
  2633. 'T
  2634. LINE (94 + x, 0 + y)-(134 + x, 8 + y), 32, B
  2635. LINE (110 + x, 8 + y)-(118 + x, 39 + y), 32, B
  2636. LINE (111 + x, 8 + y)-(117 + x, 8 + y), 0
  2637. PAINT (97 + x, 5 + y), 36, 32
  2638.  
  2639. 'A
  2640. LINE (144 + x, 0 + y)-(144 + x, 39 + y), 33
  2641. LINE (144 + x, 39 + y)-(152 + x, 39 + y), 33
  2642. LINE (152 + x, 39 + y)-(152 + x, 29 + y), 33
  2643. LINE (152 + x, 29 + y)-(175 + x, 29 + y), 33
  2644. LINE (175 + x, 29 + y)-(175 + x, 39 + y), 33
  2645. LINE (175 + x, 39 + y)-(183 + x, 39 + y), 33
  2646. LINE (183 + x, 39 + y)-(183 + x, 0 + y), 33
  2647. LINE (183 + x, 0 + y)-(144 + x, 0 + y), 33
  2648. LINE (152 + x, 8 + y)-(175 + x, 21 + y), 33, B
  2649. PAINT (147 + x, 5 + y), 36, 33
  2650.  
  2651. 'C
  2652. LINE (191 + x, 0 + y)-(191 + x, 39 + y), 34
  2653. LINE (191 + x, 39 + y)-(230 + x, 39 + y), 34
  2654. LINE (230 + x, 39 + y)-(230 + x, 31 + y), 34
  2655. LINE (230 + x, 31 + y)-(199 + x, 31 + y), 34
  2656. LINE (199 + x, 31 + y)-(199 + x, 8 + y), 34
  2657. LINE (199 + x, 8 + y)-(230 + x, 8 + y), 34
  2658. LINE (230 + x, 8 + y)-(230 + x, 0 + y), 34
  2659. LINE (230 + x, 0 + y)-(191 + x, 0 + y), 34
  2660. PAINT (194 + x, 5 + y), 36, 34
  2661.  
  2662. 'K
  2663. LINE (238 + x, 0 + y)-(238 + x, 39 + y), 35
  2664. LINE (238 + x, 39 + y)-(246 + x, 39 + y), 35
  2665. LINE (246 + x, 39 + y)-(246 + x, 22 + y), 35
  2666. LINE (246 + x, 22 + y)-(269 + x, 22 + y), 35
  2667. LINE (269 + x, 22 + y)-(269 + x, 39 + y), 35
  2668. LINE (269 + x, 39 + y)-(277 + x, 39 + y), 35
  2669. LINE (277 + x, 39 + y)-(277 + x, 14 + y), 35
  2670. LINE (277 + x, 14 + y)-(271 + x, 14 + y), 35
  2671. LINE (271 + x, 14 + y)-(271 + x, 0 + y), 35
  2672. LINE (271 + x, 0 + y)-(263 + x, 0 + y), 35
  2673. LINE (263 + x, 0 + y)-(263 + x, 14 + y), 35
  2674. LINE (263 + x, 14 + y)-(246 + x, 14 + y), 35
  2675. LINE (246 + x, 14 + y)-(246 + x, 0 + y), 35
  2676. LINE (246 + x, 0 + y)-(238 + x, 0 + y), 35
  2677. PAINT (241 + x, 5 + y), 36, 35
  2678.  
  2679. 'underline
  2680. LINE (x, 47 + y)-(277 + x, 53 + y), 35, B
  2681. LINE (1 + x, 48 + y)-(276 + x, 52 + y), 36, BF
  2682.  
  2683. r1 = 0
  2684. r2 = -3
  2685. r3 = -9
  2686. r4 = -12
  2687. r5 = -15
  2688. r6 = -18
  2689.  
  2690. the:
  2691. a$ = INKEY$
  2692. IF a$ = "" THEN  ELSE GOTO faster
  2693. r1 = r1 + 1
  2694. r2 = r2 + 1
  2695. r3 = r3 + 1
  2696. r4 = r4 + 1
  2697. r5 = r5 + 1
  2698. r6 = r6 + 1
  2699. IF r1 > 0 THEN red(30) = red(30) + 1
  2700. IF r2 > 0 THEN red(31) = red(31) + 1
  2701. IF r3 > 0 THEN red(32) = red(32) + 1
  2702. IF r4 > 0 THEN red(33) = red(33) + 1
  2703. IF r5 > 0 THEN red(34) = red(34) + 1
  2704. IF r6 > 0 THEN red(35) = red(35) + 1
  2705. dopause
  2706. FOR t = 30 TO 35
  2707. IF red(t) > 50 THEN red(t) = 50
  2708. NEXT t
  2709. FOR q = 30 TO 35
  2710. col
  2711. NEXT q
  2712. IF r6 > 60 THEN  ELSE GOTO the
  2713.  
  2714. q = 36
  2715. FOR t = 1 TO 63
  2716. red(36) = t
  2717. col
  2718. a$ = INKEY$
  2719. IF a$ = "" THEN  ELSE GOTO faster
  2720. dopause
  2721. NEXT t
  2722.  
  2723. SLEEP 3
  2724.  
  2725. FOR t = 1 TO 50
  2726. a$ = INKEY$
  2727. IF a$ = "" THEN  ELSE GOTO faster
  2728. q = 50
  2729. red(50) = t
  2730. blue(50) = t
  2731. green(50) = t
  2732. col
  2733. dopause
  2734. NEXT t
  2735.  
  2736. FOR t = 51 TO 63
  2737. a$ = INKEY$
  2738. IF a$ = "" THEN  ELSE GOTO faster
  2739. red(50) = t
  2740. blue(50) = t
  2741. green(50) = t
  2742. col
  2743. dopause
  2744. NEXT t
  2745.  
  2746. FOR t = 62 TO 50 STEP -1
  2747. a$ = INKEY$
  2748. IF a$ = "" THEN  ELSE GOTO faster
  2749. red(50) = t
  2750. blue(50) = t
  2751. green(50) = t
  2752. col
  2753. dopause
  2754. NEXT t
  2755.  
  2756. q = 41
  2757. FOR t = 1 TO 63
  2758. red(41) = t
  2759. 'blue(41) = t
  2760. 'green(41) = t
  2761. col
  2762. a$ = INKEY$
  2763. IF a$ = "" THEN  ELSE GOTO faster
  2764. dopause
  2765. NEXT t
  2766.  
  2767. q = 40
  2768. FOR t = 1 TO 63
  2769. red(40) = t
  2770. blue(40) = t
  2771. green(40) = t
  2772. col
  2773. a$ = INKEY$
  2774. IF a$ = "" THEN  ELSE GOTO faster
  2775. dopause
  2776. NEXT t
  2777.  
  2778. faster:
  2779. ' ROBOT outline
  2780. FOR q = 30 TO 35
  2781. red(q) = 50
  2782. col
  2783. NEXT q
  2784.  
  2785. q = 40
  2786. red(q) = 63
  2787. blue(q) = 63
  2788. green(q) = 63
  2789. col
  2790.  
  2791. q = 41
  2792. red(q) = 63
  2793. col
  2794.  
  2795. q = 36
  2796. red(36) = 63
  2797. col
  2798.  
  2799. q = 50
  2800. red(50) = 50
  2801. blue(50) = 50
  2802. green(50) = 50
  2803. col
  2804.  
  2805. PUT (280, 170), robot
  2806.  
  2807.  
  2808. ' ATTACK
  2809. 'x = 50
  2810. 'y = 100
  2811. 'LINE (0 + x, 39 + y)-(39 + x, 0 + y), 51
  2812. 'LINE (39 + x, 0 + y)-(39 + x, 39 + y), 52
  2813. 'LINE (20 + x, 19 + y)-(38 + x, 19 + y), 53
  2814. 'LINE (49 + x, 9 + y)-(129 + x, 9 + y), 56
  2815. 'LINE (45 + x, 39 + y)-(64 + x, 0 + y), 54
  2816. 'LINE (59 + x, 39 + y)-(79 + x, 0 + y), 55
  2817. 'LINE (69 + x, 39 + y)-(79 + x, 20 + y), 57
  2818. 'LINE (84 + x, 39 + y)-(70 + x, 39 + y), 57
  2819. 'LINE (79 + x, 20 + y)-(94 + x, 20 + y), 58
  2820. 'LINE (94 + x, 20 + y)-(84 + x, 39 + y), 58
  2821. 'LINE (87 + x, 34 + y)-(89 + x, 39 + y), 59
  2822. 'LINE (95 + x, 39 + y)-(105 + x, 20 + y), 60
  2823. 'LINE (106 + x, 20 + y)-(124 + x, 20 + y), 61
  2824. 'LINE (96 + x, 39 + y)-(114 + x, 39 + y), 61
  2825. 'LINE (125 + x, 39 + y)-(145 + x, 0 + y), 62
  2826. 'LINE (135 + x, 20 + y)-(149 + x, 20 + y), 63
  2827. 'LINE (135 + x, 21 + y)-(144 + x, 39 + y), 64
  2828.  
  2829. LOCATE 1, 12
  2830. PRINT "Press F1 for Help"
  2831.  
  2832. here:
  2833. spx = CINT(RND * 300) + 10
  2834. spy = CINT(RND * 140) + 10
  2835. p = POINT(spx, spy)
  2836. IF p = 50 THEN  ELSE GOTO nospark
  2837. ERASE spbox
  2838. GET (spx - 2, spy - 2)-(spx + 2, spy + 2), spbox
  2839. PSET (spx, spy), 39
  2840. dopause
  2841. CIRCLE (spx, spy), 1, 38
  2842. dopause
  2843. PSET (spx + 2, spy), 37
  2844. PSET (spx - 2, spy), 37
  2845. PSET (spx, spy + 2), 37
  2846. PSET (spx, spy - 2), 37
  2847. dopause
  2848. LINE (spx - 2, spy - 2)-(spx + 2, spy + 2), 0, BF
  2849. PUT (spx - 2, spy - 2), spbox
  2850. nospark:
  2851. a$ = INKEY$
  2852. SELECT CASE a$
  2853. CASE CHR$(0) + CHR$(59): help
  2854.                          GOTO start
  2855. CASE CHR$(0) + CHR$(60): GOTO contt
  2856. CASE CHR$(27): doend
  2857. CASE "": GOTO uhb
  2858. END SELECT
  2859.  
  2860. uhb:
  2861. 'cnt = cnt + 1
  2862. 'IF cnt > 1300 THEN GOTO start
  2863. IF RIGHT$(tim$, 2) = RIGHT$(TIME$, 2) THEN GOTO start
  2864.  
  2865. GOTO here
  2866.  
  2867. contt:
  2868.  
  2869.  
  2870. END SUB
  2871.  
  2872. SUB tshoot
  2873. FOR t = 1 TO 5
  2874. IF bon(t) = 0 THEN newb = t
  2875. IF newb = t THEN t = 5
  2876. NEXT t
  2877. IF newb = 0 THEN GOTO tshend ELSE
  2878. IF going = 0 THEN  ELSE GOTO sh2
  2879. bw(newb) = 0
  2880. bz(newb) = 0
  2881.  
  2882. IF tdir = 1 THEN bw(newb) = -2
  2883. IF tdir = 2 THEN bz(newb) = 2
  2884. IF tdir = 3 THEN bw(newb) = 2
  2885. IF tdir = 4 THEN bz(newb) = -2
  2886. bx(newb) = (tx + 5) + (bz(newb) * 3)
  2887. by(newb) = (ty + 5) + (bw(newb) * 3)
  2888.  
  2889.  
  2890. GOTO sh3
  2891.  
  2892. sh2:
  2893. bx(newb) = (tx + 5) + (tz * 7)
  2894. by(newb) = (ty + 5) + (tw * 7)
  2895. bz(newb) = tz * 3
  2896. bw(newb) = tw * 3
  2897.  
  2898.  
  2899. sh3:
  2900. PUT (bx(newb), by(newb)), bul
  2901. bon(newb) = 1
  2902.  
  2903.  
  2904. tshend:
  2905. END SUB
  2906.  
  2907. SUB winning
  2908. CLS
  2909.  
  2910. 'GOTO ennd
  2911.  
  2912. FOR t = 21 TO 50
  2913. red(t) = 0
  2914. blue(t) = 0
  2915. green(t) = 0
  2916. NEXT t
  2917.  
  2918. red(30) = 30
  2919. blue(30) = 30
  2920. green(30) = 30
  2921.  
  2922. FOR q = 31 TO 33
  2923. red(q) = 20 - ((q - 31) * 3)
  2924. blue(q) = 20 - ((q - 31) * 3)
  2925. green(q) = 20 - ((q - 31) * 3)
  2926. NEXT q
  2927.  
  2928. FOR q = 30 TO 40
  2929. col
  2930. NEXT q
  2931.  
  2932. 'body
  2933. LINE (190, 45)-(240, 100), 30, B
  2934. LINE (244, 32)-(258, 32), 30
  2935. LINE (258, 32)-(240, 45), 30
  2936. LINE (205, 34)-(190, 45), 30
  2937. LINE (258, 32)-(258, 41), 30
  2938. LINE (247, 95)-(240, 100), 30
  2939.  
  2940. 'head
  2941. LINE (206, 10)-(213, 5), 30
  2942. LINE (213, 5)-(243, 5), 30
  2943. LINE (243, 5)-(243, 35), 30
  2944. LINE (243, 35)-(236, 40), 30
  2945. LINE (243, 5)-(236, 10), 30
  2946. LINE (206, 10)-(236, 40), 30, B
  2947.  
  2948. 'arm (left)
  2949. LINE (180, 47)-(190, 94), 30, B
  2950. LINE (180, 47)-(187, 42), 30
  2951. LINE (187, 42)-(193, 42), 30
  2952.  
  2953. 'arm (right)
  2954. LINE (246, 47)-(256, 94), 30, B
  2955. LINE (256, 94)-(263, 89), 30
  2956. LINE (256, 47)-(263, 42), 30
  2957. LINE (246, 47)-(253, 42), 30
  2958. LINE (253, 42)-(263, 42), 30
  2959. LINE (263, 42)-(263, 89), 30
  2960.  
  2961. 'legs
  2962. LINE (197, 100)-(237, 150), 30, B
  2963. LINE (237, 150)-(248, 142), 30
  2964. LINE (248, 142)-(248, 94), 30
  2965. LINE (214, 100)-(220, 150), 30, B
  2966. LINE (215, 150)-(219, 150), 0
  2967. LINE (214, 150)-(219, 146), 30
  2968.  
  2969. 'feet
  2970. LINE (194, 153)-(211, 160), 30, B
  2971. LINE (194, 153)-(198, 150), 30
  2972. LINE (211, 153)-(215, 150), 30
  2973. LINE (211, 160)-(217, 156), 30
  2974.  
  2975. LINE (217, 153)-(234, 160), 30, B
  2976. LINE (217, 153)-(221, 150), 30
  2977. LINE (234, 153)-(238, 150), 30
  2978. LINE (234, 160)-(248, 149), 30
  2979. LINE (248, 149)-(248, 140), 30
  2980.  
  2981. 'body (paint)
  2982. PAINT (195, 47), 31, 30
  2983. PAINT (195, 43), 32, 30
  2984. PAINT (245, 45), 32, 30
  2985.  
  2986. 'head (paint)
  2987. PAINT (240, 20), 32, 30
  2988. PAINT (230, 20), 31, 30
  2989. PAINT (230, 7), 32, 30
  2990.  
  2991. 'arm (right, paint)
  2992. PAINT (247, 48), 31, 30
  2993. PAINT (258, 48), 32, 30
  2994. PAINT (250, 46), 32, 30
  2995.  
  2996. 'arm (left, paint)
  2997. PAINT (185, 50), 31, 30
  2998. PAINT (185, 45), 32, 30
  2999.  
  3000. 'legs (paint)
  3001. PAINT (200, 105), 31, 30
  3002. PAINT (217, 105), 33, 30
  3003. PAINT (225, 105), 31, 30
  3004. PAINT (240, 105), 33, 30
  3005.  
  3006.  
  3007. 'feet (paint)
  3008. PAINT (195, 154), 31, 30
  3009. PAINT (218, 154), 31, 30
  3010. PAINT (196, 152), 32, 30
  3011. PAINT (219, 152), 32, 30
  3012. PAINT (212, 153), 33, 30
  3013. PAINT (235, 153), 33, 30
  3014.  
  3015. LINE (182, 80)-(188, 90), 7, BF
  3016.  
  3017. RANDOMIZE TIMER
  3018.  
  3019. FOR t = 1 TO 100
  3020. PSET (CINT(RND * 6) + 182, CINT(RND * 10) + 80), CINT(RND * 14) + 1
  3021. NEXT t
  3022. FOR tt = 248 TO 254 STEP 2
  3023. FOR t = 70 TO 85 STEP 2
  3024. IF CINT(RND * 2) = 0 THEN PSET (tt, t), 10 ELSE PSET (tt, t), 12
  3025. NEXT t
  3026. NEXT tt
  3027.  
  3028. LINE (192, 47)-(220, 65), 4, B
  3029. LINE (193, 48)-(219, 64), 8, BF
  3030. FOR t = 195 TO 217 STEP 5
  3031. CIRCLE (t, 70), 1, 2
  3032. NEXT t
  3033.  
  3034.  
  3035. LINE (195, 80)-(230, 95), 7, B
  3036. PSET (229, 88), 4
  3037. DRAW "l7 d5 l7 d1"
  3038. PSET (196, 85), 15
  3039. DRAW "r5 d2 r7 u4 l3 u2"
  3040. PSET (219, 81), 14
  3041. DRAW "d8 l16 u4 r26"
  3042. PSET (197, 81), 9
  3043. DRAW "d12 r15 u6 r6"
  3044. PSET STEP(2, 0), 9
  3045. DRAW "r4 u6"
  3046. PSET (225, 94), 15
  3047. DRAW "u3 l29"
  3048.  
  3049. FOR t = 50 TO 72 STEP 6
  3050. LINE (232, t)-(235, t + 3), 10, BF
  3051. NEXT t
  3052.  
  3053. FOR t = 50 TO 72 STEP 6
  3054. LINE (225, t)-(228, t + 3), 10, BF
  3055. NEXT t
  3056.  
  3057.  
  3058. 'face
  3059.  
  3060. LINE (212, 18)-(216, 22), 15, BF
  3061. LINE (226, 18)-(230, 22), 15, BF
  3062. LINE (213, 33)-(229, 33), 15
  3063. LINE (213, 19)-(215, 21), 0, BF
  3064. LINE (227, 19)-(229, 21), 0, BF
  3065.  
  3066.  
  3067. pauseplay
  3068. '******
  3069.  
  3070.  
  3071. PUT (0, 150), tank2
  3072. FOR tx = 1 TO 70
  3073. PUT (tx - 1, 150), tank2
  3074. PUT (tx, 150), tank2
  3075. 'FOR t = 1 TO 150
  3076. 'NEXT t
  3077. pauseplay
  3078. NEXT tx
  3079.  
  3080. LINE (213, 19)-(215, 21), 15, BF
  3081. LINE (227, 19)-(229, 21), 15, BF
  3082. LINE (212, 20)-(214, 22), 0, BF
  3083. LINE (226, 20)-(228, 22), 0, BF
  3084.  
  3085. FOR tx = 71 TO 100
  3086. PUT (tx - 1, 150), tank2
  3087. PUT (tx, 150), tank2
  3088. 'FOR t = 1 TO 150
  3089. 'NEXT t
  3090. pauseplay
  3091. NEXT tx
  3092. 'FOR t = 1 TO 2000
  3093. 'NEXT t
  3094. pauseplay
  3095.  
  3096. PUT (tx - 1, 150), tank2
  3097. PUT (tx - 1, 150), tank3
  3098. 'FOR t = 1 TO 2000
  3099. 'NEXT t
  3100. pauseplay
  3101.  
  3102. '******
  3103.  
  3104. LINE (213, 33)-(229, 33), 31
  3105. LINE (216, 32)-(226, 35), 15, B
  3106.  
  3107. '******
  3108. pauseplay
  3109.  
  3110. x = 106
  3111. y = 146
  3112. PUT (x, y), finbul
  3113.  
  3114. FOR t = 1 TO 10
  3115. PUT (x, y), finbul
  3116. x = x + 1
  3117. y = y - 1
  3118. PUT (x, y), finbul
  3119. 'FOR tt = 1 TO 200
  3120. 'NEXT tt
  3121. pauseplay
  3122. NEXT t
  3123.  
  3124. LINE (207, 11)-(235, 39), 31, BF
  3125. LINE (210, 16)-(218, 24), 15, BF
  3126. LINE (224, 16)-(232, 24), 15, BF
  3127. 'LINE (212, 20)-(214, 22), 0, BF
  3128. 'LINE (226, 20)-(228, 22), 0, BF
  3129. LINE (213, 19)-(215, 21), 0, BF
  3130. LINE (227, 19)-(229, 21), 0, BF
  3131.  
  3132. LINE (215, 31)-(227, 37), 15, B
  3133.  
  3134. FOR t = 11 TO 50
  3135. PUT (x, y), finbul
  3136. x = x + 1
  3137. y = y - 1
  3138. PUT (x, y), finbul
  3139. 'FOR tt = 1 TO 200
  3140. 'NEXT tt
  3141. pauseplay
  3142. NEXT t
  3143.  
  3144. '******
  3145.  
  3146. LINE (207, 11)-(235, 39), 31, BF
  3147. LINE (210, 20)-(218, 20), 15
  3148. LINE (224, 20)-(232, 20), 15
  3149. LINE (214, 32)-(228, 35), 15, B
  3150. LINE (215, 35)-(227, 35), 31
  3151.  
  3152. FOR t = 51 TO 66
  3153. PUT (x, y), finbul
  3154. x = x + 1
  3155. y = y - 1
  3156. PUT (x, y), finbul
  3157. 'FOR tt = 1 TO 200
  3158. 'NEXT tt
  3159. pauseplay
  3160. NEXT t
  3161.  
  3162. PUT (x, y), finbul
  3163.  
  3164. PUT (x, y), fire1
  3165. 'FOR t = 1 TO 700
  3166. 'NEXT t
  3167. pauseplay
  3168. PUT (x, y), fire1
  3169. PUT (x, y), fire2
  3170. 'FOR t = 1 TO 700
  3171. 'NEXT t
  3172. pauseplay
  3173. PUT (x, y), fire2
  3174. PUT (x, y), fire3
  3175. 'FOR t = 1 TO 700
  3176. 'NEXT t
  3177. pauseplay
  3178. PUT (x, y), fire3
  3179.  
  3180. red(34) = 30
  3181. blue(34) = 60
  3182. green(34) = 30
  3183. q = 34
  3184. col
  3185.  
  3186. FOR t = 1 TO 7
  3187. PSET (180, 35 + (t * 8)), 34
  3188. FOR r = 1 TO 41
  3189. f = CINT(RND * 8)
  3190. IF f = 0 THEN DRAW "e1 e1"
  3191. IF f = 1 THEN DRAW "r1 e1"
  3192. IF f = 2 THEN DRAW "f1 e1"
  3193. IF f = 3 THEN DRAW "e1 r1"
  3194. IF f = 4 THEN DRAW "r1 r1"
  3195. IF f = 5 THEN DRAW "f1 r1"
  3196. IF f = 6 THEN DRAW "e1 f1"
  3197. IF f = 7 THEN DRAW "r1 f1"
  3198. IF f = 8 THEN DRAW "f1 f1"
  3199. NEXT r
  3200. NEXT t
  3201.  
  3202. q = 34
  3203.  
  3204.  
  3205. t = TIMER + 4
  3206. DO
  3207. red(34) = CINT(RND * 60) + 3
  3208. blue(34) = CINT(RND * 60) + 3
  3209. green(34) = CINT(RND * 60) + 3
  3210. col
  3211. LOOP UNTIL TIMER >= t
  3212.  
  3213.  
  3214. FOR t = 1 TO 100
  3215. a$ = INKEY$
  3216. NEXT t
  3217.  
  3218. DO
  3219. COLOR 15
  3220. LOCATE 1
  3221. PRINT "You have won Robot"
  3222. PRINT "Attack II!  Thanks"
  3223. PRINT "to you, the Earth"
  3224. PRINT "will remain free"
  3225. PRINT "from the robots..."
  3226. PRINT
  3227. PRINT "Press any key"
  3228. PRINT "to continue..."
  3229. red(34) = CINT(RND * 60) + 3
  3230. blue(34) = CINT(RND * 60) + 3
  3231. green(34) = CINT(RND * 60) + 3
  3232. col
  3233. LOOP WHILE INKEY$ = ""
  3234.  
  3235. ennd:
  3236. CLS
  3237. red(30) = 0
  3238. blue(30) = 0
  3239. green(30) = 0
  3240. q = 30
  3241. col
  3242.  
  3243. SCREEN 13
  3244. COLOR 30
  3245. LOCATE 10, 16
  3246. PRINT "The End"
  3247. FOR t = 1 TO 60
  3248. blue(30) = t
  3249. col
  3250.  
  3251. 'FOR tt = 1 TO 100
  3252. 'NEXT tt
  3253. pauseplay
  3254.  
  3255. NEXT t
  3256. SLEEP 4
  3257.  
  3258. FOR t = 60 TO 1 STEP -1
  3259. blue(30) = t
  3260. col
  3261. FOR tt = 1 TO 50
  3262. NEXT tt
  3263. NEXT t
  3264.  
  3265. 'FOR t = 1 TO 3000
  3266. 'NEXT t
  3267.  
  3268. pauseplay
  3269.  
  3270. CLS
  3271.  
  3272. PUT (140, 40), robot
  3273. PUT (110, 45), robot
  3274. PUT (170, 45), robot
  3275. FOR tt = 1 TO 5
  3276. FOR t = 100 TO 5000 STEP 100
  3277. SOUND t, .03
  3278. SOUND 1000, .03
  3279. NEXT t
  3280. NEXT tt
  3281.  
  3282. LOCATE 10, 12
  3283. COLOR 30
  3284. PRINT "...OR IS IT ???"
  3285.  
  3286. FOR t = 1 TO 60
  3287. red(30) = t
  3288. col
  3289. 'FOR tt = 1 TO 150
  3290. 'NEXT tt
  3291. pauseplay
  3292. NEXT t
  3293. SLEEP 2
  3294. FOR t = 60 TO 1 STEP -1
  3295. red(30) = t
  3296. col
  3297. 'FOR tt = 1 TO 150
  3298. 'NEXT tt
  3299. pauseplay
  3300.  
  3301. NEXT t
  3302. CLS
  3303. COLOR 15
  3304.  
  3305. END SUB
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement