Fix to the const definition
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Tue, 25 Apr 2017 16:38:00 +0000 (18:38 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Tue, 25 Apr 2017 16:38:00 +0000 (18:38 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
lib/constants.c [new file with mode: 0644]
lib/constants.h
lib/othello.h
lib/ui.c
lib/ui.h
src/main.c

diff --git a/lib/constants.c b/lib/constants.c
new file mode 100644 (file)
index 0000000..7559432
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * =====================================================================================
+ *
+ *       Filename:  constants.h
+ *
+ *    Description:  Header for constant values
+ *
+ *        Version:  1.0
+ *        Created:  24/04/2017 21:06:32
+ *       Revision:  none
+ *       Compiler:  gcc
+ *
+ *         Author:  Jerome Benoit (fraggle), jerome.benoit@piment-noir.org
+ *   Organization:  Piment Noir
+ *
+ * =====================================================================================
+ */
+
+/* exported const definitions */
+const int empty = 0;
+const int white = 1;
+const int black = 2;
index 74ea1d8d8a3c9222065453fe6df279e8e9965a22..902489d328688007167dbcd0299e519a5d01e98a 100644 (file)
 #ifndef CONSTANTS_H
 #define CONSTANTS_H
 
-const int empty = 0;
-const int white = 1;
-const int black = 2;
+#define board_size 8
+
+extern const int empty;
+extern const int white;
+extern const int black;
 
 #endif /* CONSTANTS_H */
 
index e590b02d9790aa014ee4e2e248069c60c0d8dc2b..7123697e655f5a41c1e30666afd39fefab951ddc 100644 (file)
 #ifndef OTHELLO_H
 #define OTHELLO_H
 
+#include "constants.h"
+
+int pawn[board_size][board_size] = {
+    {0, 0}
+};
+
 #endif /* OTHELLO_H */
index c5f83b7be7f05a2e4192b69f2ec2387d9f3945a6..c786772620be4e78df055a277c8f5507e78f989f 100644 (file)
--- a/lib/ui.c
+++ b/lib/ui.c
@@ -51,35 +51,43 @@ void print_board(int y, int x) {
     mvprintw(y+22, x, " -----+----+----+----+----+----+----+-----");
 }
 
-static void print_x(int y, int x, int type) {
-
-    mvprintw(y, x, "\\/");
-    mvprintw(y+1, x,"/\\");
-}
-
 static void print_o(int y, int x, int type) {
 
     mvprintw(y, x, "/\\");
     mvprintw(y+1, x, "\\/");
 }
 
-/* y = 1: y -> 0  x = 1: 1 -> 1
- * y > 2: y -> y + 3     2 -> +6 */
+/* will be used for pawn placement hints */
+static void print_x(int y, int x, int type) {
+
+    mvprintw(y, x, "\\/");
+    mvprintw(y+1, x,"/\\");
+}
 
+/* y = 1: y -> 0      x = 1: 1 -> 1
+ * y > 1: y -> y + 3  x > 1: x -> x + 5 */
 static int remap_y(int y) {
 
     if (y == 1) {
         return 0;
     } else if (y > 1) {
-        return y + 3;
+        return (remap_y(y -1) + 3);
     }
 }
 
 static int remap_x(int x) {
 
     if (x == 1) {
-        return 1;
-    } else if (x > 2) {
-        return x + 5;
+        return x;
+    } else if (x > 1) {
+        return (remap_x(x - 1) + 5);
+    }
+}
+
+void print_pawns(int pawn_array[board_size][board_size]) {
+    for (int i = 0; i < board_size; i++) {
+        for (int j = 0; j < board_size; j++) {
+            //mvprintw(i,  j, "pawn[%d][%d] = %d\n", i, j, pawn_array[i][j]);
+        }
     }
 }
index 291507808fb91c624964f7e074efeedf5d762b1f..ad32628042a00fc7f21ec044163fdbdd1359dc66 100644 (file)
--- a/lib/ui.h
+++ b/lib/ui.h
 #ifndef UI_H
 #define UI_H
 
+#include "constants.h"
+
 /* ncurses printing */
 void print_board(int y, int x);
+void print_pawns(int pawn_array[board_size][board_size]);
 
 /* non ncurses printing */
 
index ead55ef8004ee9c018a5ace3fbb72c82cb1d5cb5..7a327bed08e9bb79e74ecfbb03cd3f9815d08667 100644 (file)
@@ -4,6 +4,7 @@
 #include <ncurses.h>
 
 #include "ui.h"
+#include "othello.h"
 
 int main() {
     int row = 0, col = 0;
@@ -23,7 +24,7 @@ int main() {
 
     /* center the board */
     int center_board_y = row/2 - 23/2;
-    int center_board_x = col/2 - 40/2;
+    int center_board_x = col/2 - 41/2;
 
     do {
         print_board(center_board_y, center_board_x);