]> git.lizzy.rs Git - ttfe.git/blobdiff - main.c
Don't print zeroes
[ttfe.git] / main.c
diff --git a/main.c b/main.c
index 58c4a0deb0996e5f007c8aed1cb3350d5bc56f3e..26b77c1d15bce428a408d558e138290684f2663c 100644 (file)
--- a/main.c
+++ b/main.c
@@ -39,7 +39,7 @@ void init_board(board *b) {
 }
 
 void game_start() {
-       printf("\e[?1049h");
+       printf("\e[?1049h\e[?25l]");
        struct termios oldtio, newtio;
        tcgetattr(STDIN_FILENO, &oldtio);
        newtio = oldtio;
@@ -49,7 +49,7 @@ void game_start() {
        game_loop(b);
        print_score(b);
        free_board(b);
-       printf("\e[?1049l");
+       printf("\e[?1049l\e[?25h");
        tcsetattr(STDIN_FILENO, TCSANOW, &oldtio);
 }
 
@@ -399,23 +399,52 @@ void merge_west(board *b) {
        }
 }
 
-void print_sep() {
-       printf("||--------------------------------------------------------------||\n");
+void print_sep(const char *left, const char *right, const char *cross, const char *line)
+{
+       printf("%s", left);
+       for(int i = 0; i < 4; i++) {
+               for(int j = 0; j < 4; j++)
+                       printf("%s", line);
+               if(i == 3)
+                       printf("%s", right);
+               else
+                       printf("%s", cross);
+       }
+       printf("\n");
 }
 
 void print_board_line(board *b, int l) {
-       printf("||\t%u\t|\t%u\t|\t%u\t|\t%u\t||\n", b->x[0][l], b->x[1][l], b->x[2][l], b->x[3][l]); 
-       print_sep();
+       printf("\u2503");
+
+       for(int i = 0; i < 4; i++) {
+               uint n = b->x[i][l];
+
+               if(n == 0)
+                       printf("    ");
+               else
+                       printf("%4u", n);
+
+               if(i == 3)
+                       printf("\u2503");
+               else
+                       printf("\u2502");
+       }
+
+       printf("\n");
+
+       if(l == 3)
+               print_sep("\u2517", "\u251B", "\u2537", "\u2501");
+       else
+               print_sep("\u2520", "\u2528", "\u253C", "\u2500");
 }
 
 void print_board(board *b) {
        printf("\e[2J\e[0;0H");
        printf("Score: %u\n", b->points);
-       print_sep();
+       print_sep("\u250F", "\u2513", "\u252F", "\u2501");
        for(int i = 0; i < 4; ++i) {
                print_board_line(b, i);
        }
-       printf("\n");
 }
 
 void print_score(board *b) {