aboutsummaryrefslogtreecommitdiff
path: root/inc/hanoi.h
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-06-28 09:40:47 +0200
committerCharles <sircharlesaze@gmail.com>2020-06-28 09:40:47 +0200
commit15e690e0dc9f539ca0e8e9c98c3fdc9105ec9d74 (patch)
treed60e39bdac9d2447b89e56dac88b8877b5005378 /inc/hanoi.h
parentfeae9f442000cf218c249e6e163e8b5137771857 (diff)
downloadhanoi-master.tar.gz
hanoi-master.tar.bz2
hanoi-master.zip
Added solveHEADmaster
Diffstat (limited to 'inc/hanoi.h')
-rw-r--r--inc/hanoi.h30
1 files changed, 29 insertions, 1 deletions
diff --git a/inc/hanoi.h b/inc/hanoi.h
index 1953499..3091658 100644
--- a/inc/hanoi.h
+++ b/inc/hanoi.h
@@ -1,9 +1,15 @@
#ifndef HANOI_H
# define HANOI_H
+# include <unistd.h>
+# include <stdlib.h>
+# include <stdint.h>
+# include <stddef.h>
+# include <string.h>
+
# include <ncurses.h>
-# include "tower.h"
+# define MAX_HEIGHT 128
enum e_mode
{
@@ -11,4 +17,26 @@ enum e_mode
MODE_SELECT_TO,
};
+
+typedef struct
+{
+ uint8_t data[MAX_HEIGHT];
+ size_t len;
+} t_tower;
+
+enum e_highlight
+{
+ HIGHLIGHT_NONE = 0,
+ HIGHLIGHT_FROM = 1 << 0,
+ HIGHLIGHT_CURRENT = 1 << 1,
+};
+
+void towers_init(t_tower towers[3], size_t disk_num);
+void towers_move(t_tower towers[3], size_t from, size_t to);
+void tower_put(t_tower *tower, WINDOW *win, enum e_highlight highlight_level);
+uint8_t tower_peek(t_tower *tower);
+
+void solve(t_tower towers[3], WINDOW *wins[3],
+ int n, int from, int via, int to);
+
#endif