home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / logo / labybug / demo5.bug < prev    next >
Text File  |  1989-12-30  |  3KB  |  198 lines

  1. to "let's.explain  
  2. JE CURSOR 1 6
  3. JP PR [Watch the next procedure. The]
  4. JL JP PR [action is a bit different so]
  5. JL JP PR [you can see how we "fake" the]
  6. JL JP PR [appearance of four independent]
  7. JL JP PR [turtles...]
  8. WAIT 30 CS
  9. end
  10.  
  11. to "start  
  12. JE CURSOR 1 6
  13. JP PR [Why should LadyBug Logo have just]
  14. JL JP PR [one turtle? Why not several?]
  15. JL JL JL JP PR [While we can't call up others,]
  16. JL JP PR [we can fake it...]
  17. JL JL JL JP PR [Take a look.]
  18. WAIT 20
  19. CT JB
  20. end
  21.  
  22. to "kaleidoscope  
  23. SET.UP
  24. REPEAT 25 [DEMO]
  25. end
  26.  
  27. to "demo  
  28. IF :STEP > 100 [MAKE "STEP 10]
  29. MAKE "STEP :STEP + 5
  30. MOVE
  31. RT :ANGLE
  32. IF OR :ANGLE > 45 :ANGLE < -45 [MAKE :ANGLE :ANGLE - ( :ANGLE * 2 ) ]
  33. MAKE "ANGLE :ANGLE + 5
  34. IF :C = 3 [MAKE "C 0]
  35. MAKE "C :C + 1
  36. SETPC :C
  37. end
  38.  
  39. to "move  
  40. MAKE "X1 XCOR
  41. MAKE "Y1 YCOR
  42. FD :STEP
  43. MAKE "X2 XCOR
  44. MAKE "Y2 YCOR
  45. PU SETXY :X1 - ( :X1 * 2 ) :Y1
  46. PD SETXY :X2 - ( :X2 * 2 ) :Y2
  47. PU SETXY :X1 - ( :X1 * 2 ) :Y1 - ( :y1 * 2 )
  48. PD SETXY :X2 - ( :X2 * 2 ) :Y2 - ( :Y2 * 2 )
  49. PU SETXY :X1 :Y1 - ( :Y1 * 2 )
  50. PD SETXY :X2 :Y2 - ( :Y2 * 2 )
  51. PU SETXY :X2 :Y2
  52. PD
  53. RT 15
  54. end
  55.  
  56. to "set.up  
  57. MAKE "C 1
  58. MAKE "STEP 20
  59. MAKE "ANGLE 5 HT
  60. end
  61.  
  62. to "turtles  :N :SIZE
  63. SET.ZERO
  64. SET.ONE
  65. SET.TWO
  66. SET.THREE
  67. TURTLES.FOUR :N :SIZE
  68. PR [WE NEVER SAID THEY WERE FAST.]
  69. WAIT 10
  70. CLEARWS
  71. LOAD "DEMO5
  72. START
  73. end
  74.  
  75. to "turtles.four  :N :SIZE
  76. IF :SIZE > :N [STOP]
  77. PR [ASK 0 [RT 90 FD :SIZE]]
  78. ASK 0 [RT 90 FD :SIZE]
  79. PR [ASK 1 [RT 105 FD :SIZE]]
  80. ASK 1 [RT 105 FD :SIZE]
  81. PR [ASK 2 [RT 125 FD :SIZE]]
  82. ASK 2 [RT 125 FD :SIZE]
  83. PR [ASK 3 [RT 45 FD :SIZE]]
  84. ASK 3 [RT 45 FD :SIZE]
  85. PR [TURTLES.FOUR :N :SIZE + 20]
  86. TURTLES.FOUR :N :SIZE + 20
  87. end
  88.  
  89. to "ask  :TNUM :COMMAND.LIST
  90. IF :TNUM = 0 [ZERO :COMMAND.LIST]
  91. IF :TNUM = 1 [ONE :COMMAND.LIST]
  92. IF :TNUM = 2 [TWO :COMMAND.LIST]
  93. IF :TNUM = 3 [THREE :COMMAND.LIST]
  94. end
  95.  
  96. to "set.zero  
  97. MAKE "OLDX0 XCOR
  98. MAKE "OLDY0 YCOR
  99. MAKE "OLDH0 HEADING
  100. end
  101.  
  102. to "set.one  
  103. MAKE "OLDX1 XCOR
  104. MAKE "OLDY1 YCOR
  105. MAKE "OLDH1 HEADING
  106. end
  107.  
  108. to "set.two  
  109. MAKE "OLDX2 XCOR
  110. MAKE "OLDY2 YCOR
  111. MAKE "OLDH2 HEADING
  112. end
  113.  
  114. to "set.three  
  115. MAKE "OLDX3 XCOR
  116. MAKE "OLDY3 YCOR
  117. MAKE "OLDH3 HEADING
  118. end
  119.  
  120. to "zero  :COMMAND.LIST
  121. SETXY :OLDX0 :OLDY0 SETH :OLDH0
  122. PD RUN :COMMAND.LIST PU
  123. MAKE "OLDX0 XCOR
  124. MAKE "OLDY0 YCOR
  125. MAKE "OLDH0 HEADING
  126. end
  127.  
  128. to "one  :COMMAND.LIST
  129. SETXY :OLDX1 :OLDY1 SETH :OLDH1
  130. PD RUN :COMMAND.LIST PU
  131. MAKE "OLDX1 XCOR
  132. MAKE "OLDY1 YCOR
  133. MAKE "OLDH1 HEADING
  134. end
  135.  
  136. to "two  :COMMAND.LIST
  137. SETXY :OLDX2 :OLDY2 SETH :OLDH2
  138. PD RUN :COMMAND.LIST PU
  139. MAKE "OLDX2 XCOR
  140. MAKE "OLDY2 YCOR
  141. MAKE "OLDH2 HEADING
  142. end
  143.  
  144. to "three  :COMMAND.LIST
  145. SETXY :OLDX3 :OLDY3 SETH :OLDH3
  146. PD RUN :COMMAND.LIST PU
  147. MAKE "OLDX3 XCOR
  148. MAKE "OLDY3 YCOR
  149. MAKE "OLDH3 HEADING
  150. end
  151.  
  152. to "and  :a :b
  153. if :a = "true [output :b = "true]
  154. output "false
  155. end
  156.  
  157. to "or  :a :b
  158. if :a = "true [output "true]
  159. output :b = "true
  160. end
  161.  
  162. to "jb  
  163. kaleidoscope
  164. let's.explain
  165. turtles 120 60
  166. end
  167.  
  168. to "je  
  169. CLEARTEXT CURSOR 1 1
  170. end
  171.  
  172. to "jc  
  173. BG 0 CS
  174. end
  175.  
  176. to "jl  
  177. print "
  178. end
  179.  
  180. to "jp  
  181. REPEAT 3 [JI]
  182. end
  183.  
  184. to "ji  
  185. TYPE CHAR 32
  186. end
  187.  
  188. to "wait  :t 
  189. if :t = 0 [stop]
  190. make "t :t - 1
  191. wait :t
  192. end
  193.  
  194. to "pr  :LIST
  195. PRINT :LIST
  196. end
  197.  
  198.