From e0c26ec73feb5bccd941aaf780ec4b265b04765c Mon Sep 17 00:00:00 2001 From: Arkaprabha Chakraborty Date: Sat, 3 Jun 2023 05:11:02 +0530 Subject: [PATCH] Use putchar() instead of printf() in print_map() for performance benefits --- maze.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/maze.c b/maze.c index d485135..cb68c66 100644 --- a/maze.c +++ b/maze.c @@ -132,8 +132,10 @@ void alloc_map() { void load_map(const char *path) { FILE *file = fopen(path, "r"); + size_t y_cord = 0; + size_t x_cord = 0; + char cur; - size_t y_cord = 0, x_cord = 0; while (EOF != (cur = getc(file))) { if ('\n' == cur) { x_cord = 0; @@ -154,12 +156,13 @@ void load_map(const char *path) { } void print_map() { - const char sprites[] = " XO#@"; + const char sprites[] = " H*XO"; for (size_t y_cord = 0; y_cord < MAP->y_size; ++y_cord) { for (size_t x_cord = 0; x_cord < MAP->x_size; ++x_cord) { - printf("%lc ", sprites[MAP->pntr[y_cord][x_cord]]); + putchar(sprites[MAP->pntr[y_cord][x_cord]]); + putchar(' '); } - printf("\n"); + putchar('\n'); } } @@ -184,6 +187,7 @@ void check_win() { /// Reads keyboard input void *capture() { set_term_raw(); // local function: Enable Raw Mode + char ch; while ((ch = getchar()) != 'q') { switch (ch) { @@ -241,14 +245,12 @@ void set_term_raw() { // printing to terminal // ICANON and ECHO is bitflag. ~ is binary NOT operator - tcsetattr(STDIN_FILENO, TCSAFLUSH, - &raw); // Set the terminal to be in raw mode - // tcsetattr() from + tcsetattr(STDIN_FILENO, TCSAFLUSH, &raw); // Set the terminal to be in raw mode + // tcsetattr() from } void set_term_def() { - tcsetattr(STDIN_FILENO, TCSAFLUSH, - &TSTATE); // Set terminal to TSTATE state + tcsetattr(STDIN_FILENO, TCSAFLUSH, &TSTATE); // Set terminal to TSTATE state } int main(int argc, char *argv[]) {