v / examples / hanoi.v
20 lines · 17 sloc · 311 bytes · f09826e928f9612bab9299faefff7cf34a503362
Raw
1// hanoi tower
2const num = 7
3
4fn main() {
5 hanoi(num, 'A', 'B', 'C')
6}
7
8fn move(n int, a string, b string) {
9 println('Disc ${n} from ${a} to ${b}...')
10}
11
12fn hanoi(n int, a string, b string, c string) {
13 if n == 1 {
14 move(1, a, c)
15 } else {
16 hanoi(n - 1, a, c, b)
17 move(n, a, c)
18 hanoi(n - 1, b, a, c)
19 }
20}
21