Jelajahi Sumber

changed some debugging functions to only compile when DEBUG is defined

Aaro Saila 3 bulan lalu
induk
melakukan
c7b89aded5
6 mengubah file dengan 45 tambahan dan 27 penghapusan
  1. 1 1
      compile.sh
  2. 9 5
      src/BoardPiece.c
  3. 20 15
      src/Snake.c
  4. 6 1
      src/headers/BoardPiece.h
  5. 6 1
      src/headers/Snake.h
  6. 3 4
      src/main.c

+ 1 - 1
compile.sh

@@ -26,7 +26,7 @@ fi
 version=$(git rev-parse HEAD)
 
 oflag="-Og"
-debug_flag="-ggdb"
+debug_flag="-ggdb -DDEBUG"
 
 if [ $arg = "release" ]; then
   oflag="-O3"

+ 9 - 5
src/BoardPiece.c

@@ -1,7 +1,13 @@
-#include <stdio.h>
-
 #include "BoardPiece.h"
 
+bool pieces_collide(BoardPiece* piece1, BoardPiece* piece2) {
+  return piece1->x == piece2->x && piece1->y == piece2->y;
+}
+
+#ifdef DEBUG
+
+#include <stdio.h>
+
 void board_piece_print_info(BoardPiece* piece, char* name) {
   printf("%s: {\n", name);
   printf("  x: %d\n", piece->x);
@@ -10,6 +16,4 @@ void board_piece_print_info(BoardPiece* piece, char* name) {
   printf("}\n");
 }
 
-bool pieces_collide(BoardPiece* piece1, BoardPiece* piece2) {
-  return piece1->x == piece2->x && piece1->y == piece2->y;
-}
+#endif // DEBUG

+ 20 - 15
src/Snake.c

@@ -108,21 +108,6 @@ void snake_move(Snake* snake, const int width, const int height) {
   check_bounds(snake, width, height);
 }
 
-void snake_print_info(const Snake* snake) {
-  printf("snake: {\n");
-  printf("  parts: {\n");
-  for (size_t i = 0; i < snake->length; i++) {
-    const BoardPiece part = snake->parts[i];
-    printf("    { x: %d, y: %d }\n", part.x, part.y);
-  }
-  printf("  }\n");
-
-  printf("  max_length: %zu\n", snake->max_length);
-  printf("  length: %zu\n", snake->length);
-  printf("  dir: %c\n", snake->dir);
-  printf("}\n");
-}
-
 void snake_change_direction(Snake* snake, const char direction) {
   snake->dir = direction;
 }
@@ -211,3 +196,23 @@ void snake_add_part(Snake* snake) {
   };
   snake->length++;
 }
+
+#ifdef DEBUG
+
+void snake_print_info(const Snake* snake) {
+  printf("snake: {\n");
+  printf("  parts: {\n");
+  for (size_t i = 0; i < snake->length; i++) {
+    const BoardPiece part = snake->parts[i];
+    printf("    { x: %d, y: %d }\n", part.x, part.y);
+  }
+  printf("  }\n");
+
+  printf("  max_length: %zu\n", snake->max_length);
+  printf("  length: %zu\n", snake->length);
+  printf("  dir: %c\n", snake->dir);
+  printf("}\n");
+}
+
+#endif // DEBUG
+

+ 6 - 1
src/headers/BoardPiece.h

@@ -7,7 +7,12 @@ typedef struct {
   char vis_char;
 } BoardPiece;
 
-void board_piece_print_info(BoardPiece* piece, char* name);
 bool pieces_collide(BoardPiece* piece1, BoardPiece* piece2);
 
+#ifdef DEBUG
+
+void board_piece_print_info(BoardPiece* piece, char* name);
+
+#endif // DEBUG
+
 #endif // BOARD_PIECE_H_

+ 6 - 1
src/headers/Snake.h

@@ -20,10 +20,15 @@ Snake snake_alloc(
     );
 void snake_free(Snake* snake);
 void snake_move(Snake* snake, const int width, const int height);
-void snake_print_info(const Snake* snake);
 void snake_change_direction(Snake* snake, const char direction);
 bool snake_collides(const Snake* snake, const BoardPiece* piece);
 bool snake_collides_with_tail(const Snake* snake);
 void snake_add_part(Snake* snake);
 
+#ifdef DEBUG
+
+void snake_print_info(const Snake* snake);
+
+#endif // DEBUG
+
 #endif // SNAKE_H_

+ 3 - 4
src/main.c

@@ -13,7 +13,6 @@
 #include "utils.h"
 
 #define TERMIOS 1
-#define DEBUG 0
 
 #define MIN_SLEEP_TIME_MS 60
 
@@ -44,8 +43,8 @@ int main(int argc, char** argv) {
     // Screen init
     system("clear");
 
-#if DEBUG
-    long long frame = 0;
+#ifdef DEBUG
+    unsigned long long frame = 0;
 #endif // DEBUG
 
     while (true) {
@@ -89,7 +88,7 @@ int main(int argc, char** argv) {
             }
         }
 
-#if DEBUG
+#ifdef DEBUG
         printf("input: %c\n", input);
         printf("Frame: %lld\n", frame);
         printf("sleep_ms: %u\n", sleep_time);