Line | |
---|
1 | divert(-1)
|
---|
2 |
|
---|
3 | # move(from, to)
|
---|
4 | define(`move', `Move one disk from `$1' to `$2'.
|
---|
5 | ')
|
---|
6 |
|
---|
7 | # _hanoi (cnt, from, to, aux)
|
---|
8 | define(`_hanoi', `ifelse(eval(`$1'<=1), 1, `move($2, $3)',
|
---|
9 | `_hanoi(decr($1), $2, $4, $3)move($2, $3)_hanoi(decr($1), $4, $3, $2)')')
|
---|
10 |
|
---|
11 | # hanoi (cnt)
|
---|
12 | define(`hanoi', `_hanoi(`$1', source, destination, auxilliary)')
|
---|
13 | divert`'dnl
|
---|
14 |
|
---|
15 | # Debugmode t
|
---|
16 | debugmode(`t')
|
---|
17 | hanoi(2)
|
---|
18 |
|
---|
19 | # Debugmode taeq
|
---|
20 | debugmode(`taeq')
|
---|
21 | hanoi(2)
|
---|
22 |
|
---|
23 | # Debugmode OFF
|
---|
24 | debugmode
|
---|
25 | hanoi(2)
|
---|
26 |
|
---|
27 | # Debugmode ae
|
---|
28 | debugmode(`ae')
|
---|
29 | traceon(`move', `_hanoi')
|
---|
30 | hanoi(2)
|
---|
Note:
See
TracBrowser
for help on using the repository browser.