aboutsummaryrefslogtreecommitdiff
path: root/src/solve.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/solve.c')
-rw-r--r--src/solve.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/solve.c b/src/solve.c
new file mode 100644
index 0000000..d020dfd
--- /dev/null
+++ b/src/solve.c
@@ -0,0 +1,16 @@
+#include "hanoi.h"
+
+void solve(t_tower towers[3], WINDOW *wins[3],
+ int n, int from, int via, int to)
+{
+ if (n == 0)
+ return;
+ solve(towers, wins, n - 1, from, to, via);
+ towers_move(towers, from, to);
+
+ for (int i = 0; i < 3; i++)
+ tower_put(&towers[i], wins[i], HIGHLIGHT_NONE);
+ usleep(1000);
+
+ solve(towers, wins, n - 1, via, from, to);
+}