Advertisement
TimJSwan

Tim Swan's HANOI in ti-Basic

May 3rd, 2015
570
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. If 0:⌊θ 1. FLAG 2. NUM PIECES 3. RET VAL MOVES NEGATIVE WHEN LOSE 4. MIN MOVES FOR AUTO QUIT
  2. 0→K
  3. 0→J
  4. 0→Z
  5. If ⌊θ(1)=1
  6. Then
  7. 0→⌊θ(1)
  8. ⌊θ(2)→J
  9. ⌊θ(4)→K
  10. 0→⌊θ(2)
  11. 0→⌊θ(3)
  12. 0→⌊θ(4)
  13. End
  14. ClrHome
  15. Disp "":Disp "
  16. While 1
  17. If J=0
  18. Then
  19. Input "LEVEL:",A
  20. While A<1>8≠int(A)
  21. ClrHome
  22. Disp "":Disp "
  23. Disp "PLEASE ENTER AN
  24. Disp "INTEGER (1-8):
  25. Input "",A
  26. End
  27. ClrHome
  28. Disp "":Disp "[ENTER] FOR AUTO
  29. Disp "OTHER KEY FOR MANUAL
  30. getKey→R
  31. Repeat R
  32. getKey→R
  33. End
  34. If R=105
  35. 1→Z
  36. Else
  37. J→A
  38. End
  39. ClrHome
  40. 0→B
  41. 0→C
  42. For(D,1,A,1
  43. Output(8-A+D,5,D
  44. A-D+1→L₁(D)
  45. End
  46. A→D
  47. D→W
  48. D→E
  49. 5→S
  50. 5→T
  51. 2→G
  52. 2→H
  53. 0→I
  54. While B<W and C<W
  55. If K>0
  56. Then
  57. If I>K
  58. Then
  59. –I→⌊θ(3)
  60. Return
  61. End
  62. End
  63. Output(9-E,T-H,"
  64. Output(9-E,T+H,"
  65. Output(9-D,S-G,"[
  66. Output(9-D,S+G,"]
  67. If G=1
  68. Then
  69. If H=1
  70. Output(9-E,T,"
  71. Output(9-D,S,M
  72. End
  73. S→T
  74. G→H
  75. D→E
  76. getKey→F
  77. Repeat F
  78. getKey→F
  79. End
  80. If F=24
  81. Then
  82. S-3→S
  83. If S=2
  84. 11→S
  85. End
  86. If F=26
  87. Then
  88. S+3→S
  89. If S=14
  90. 5→S
  91. End
  92. If F=21
  93. Then
  94. If G=1
  95. Then
  96. If S=5
  97. Then
  98. If A=0
  99. Then
  100. 1→A
  101. 2→G
  102. I+1→I
  103. M→L₁(1)
  104. Else
  105. If L₁(A)>M
  106. Then
  107. A+1→A
  108. 2→G
  109. I+1→I
  110. M→L₁(A)
  111. End
  112. End
  113. End
  114. If S=8
  115. Then
  116. If B=0
  117. Then
  118. 1→B
  119. 2→G
  120. I+1→I
  121. M→L₂(1)
  122. Else
  123. If L₂(B)>M
  124. Then
  125. B+1→B
  126. 2→G
  127. I+1→I
  128. M→L₂(B)
  129. End
  130. End
  131. End
  132. If S=11
  133. Then
  134. If C=0
  135. Then
  136. 1→C
  137. 2→G
  138. I+1→I
  139. M→L₃(1)
  140. Else
  141. If L₃(C)>M
  142. Then
  143. C+1→C
  144. 2→G
  145. I+1→I
  146. M→L₃(C)
  147. End
  148. End
  149. End
  150. Else:If 0:G=2
  151. If S=5 and A>0
  152. Then
  153. L₁(A)→M
  154. A-1→A
  155. 1→G
  156. End
  157. If S=8 and B>0
  158. Then
  159. L₂(B)→M
  160. B-1→B
  161. 1→G
  162. End
  163. If S=11 and C>0
  164. Then
  165. L₃(C)→M
  166. C-1→C
  167. 1→G
  168. End
  169. End
  170. End
  171. If S=5
  172. A→D
  173. If S=8
  174. B→D
  175. If S=11
  176. C→D
  177. If G=1
  178. D+1→D
  179. If D=0
  180. 1→D
  181. End
  182. ClrHome
  183. If J
  184. Then
  185. I→⌊θ(3)
  186. Return
  187. End
  188. Disp "":Disp "
  189. Disp " YOU WIN!
  190. Disp "MOVES:
  191. Disp I
  192. Disp "MINIMUM:
  193. Disp 2^D-1
  194. Disp "":Disp "
  195. End
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement