Towers of Hanoi: Difference between revisions
Content added Content deleted
m (→simple text moves: aligned the THEN-ELSE statements. -- ~~~~) |
(Added TI-83 Basic (Non recursive)) |
||
Line 1,981: | Line 1,981: | ||
14: move from A to C |
14: move from A to C |
||
15: move from B to C</pre> |
15: move from B to C</pre> |
||
=={{header|TI-83 BASIC}}== |
|||
TI-83 BASIC lacks recursion, so technically this task is impossible, however here is a version that uses an iterative method. |
|||
<lang ti-83b>PROGRAM:TOHSOLVE |
|||
0→A |
|||
1→B |
|||
0→C |
|||
0→D |
|||
0→M |
|||
1→R |
|||
While A<1 or A>7 |
|||
Input "No. of rings=?",A |
|||
End |
|||
randM(A+1,3)→[C] |
|||
[[1,2][1,3][2,3]]→[E] |
|||
Fill(0,[C]) |
|||
For(I,1,A,1) |
|||
I?[C](I,1) |
|||
End |
|||
ClrHome |
|||
While [C](1,3)≠1 and [C](1,2)≠1 |
|||
For(J,1,3) |
|||
For(I,1,A) |
|||
If [C](I,J)≠0:Then |
|||
Output(I+1,3J,[C](I,J)) |
|||
End |
|||
End |
|||
End |
|||
While C=0 |
|||
Output(1,3B," ") |
|||
1→I |
|||
[E](R,2)→J |
|||
While [C](I,J)=0 and I≤A |
|||
I+1→I |
|||
End |
|||
[C](I,J)→D |
|||
1→I |
|||
[E](R,1)→J |
|||
While [C](I,J)=0 and I≤A |
|||
I+1→I |
|||
End |
|||
If (D<[C](I,J) and D≠0) or [C](I,J)=0:Then |
|||
[E](R,2)→B |
|||
Else |
|||
[E](R,1)→B |
|||
End |
|||
1→I |
|||
While [C](I,B)=0 and I≤A |
|||
I+1→I |
|||
End |
|||
If I≤A:Then |
|||
[C](I,B)→C |
|||
0→[C](I,B) |
|||
Output(I+1,3B," ") |
|||
End |
|||
Output(1,3B,"V") |
|||
End |
|||
While C≠0 |
|||
Output(1,3B," ") |
|||
If B=[E](R,2):Then |
|||
[E](R,1)→B |
|||
Else |
|||
[E](R,2)→B |
|||
End |
|||
1→I |
|||
While [C](I,B)=0 and I≤A |
|||
I+1→I |
|||
End |
|||
If [C](I,B)=0 or [C](I,B)>C:Then |
|||
C→[C](I-1,B) |
|||
0→C |
|||
M+1→M |
|||
End |
|||
End |
|||
Output(1,3B,"V") |
|||
R+1→R |
|||
If R=4:Then:1→R:End |
|||
End |
|||
</lang> |
|||
=={{header|Toka}}== |
=={{header|Toka}}== |