diff options
Diffstat (limited to 'clicker-ncurses.c')
-rw-r--r-- | clicker-ncurses.c | 52 |
1 files changed, 22 insertions, 30 deletions
diff --git a/clicker-ncurses.c b/clicker-ncurses.c index 8decf8f..23d3a4d 100644 --- a/clicker-ncurses.c +++ b/clicker-ncurses.c @@ -3,7 +3,8 @@ #include <stdlib.h> #include <unistd.h> -#include <ncurses.h> +/* TODO: check for compatibility with different implementations */ +#include <curses.h> #include "clicker-ncurses.h" @@ -40,7 +41,7 @@ main (void) /* Initialize the structure and set the values */ struct game *cur_game = malloc(sizeof(struct game)); cur_game->click = 1; - cur_game->multiplifier = 2; + cur_game->multiplifier = 128; /* The main loop that also catches user input */ int ch = 0; @@ -49,54 +50,45 @@ main (void) switch (ch) { case ' ': - set_score(cur_game, get_score(cur_game) + get_click(cur_game)); + set_score(cur_game, cur_game->score + cur_game->click); break; case 'q': goto endwin; case 'u': - if (get_score(cur_game) >= 2 * get_multiplifier(cur_game)) + if (cur_game->score >= cur_game->click * cur_game->multiplifier) { - set_score(cur_game, get_score(cur_game) - get_click(cur_game) * 2); - set_click(cur_game, get_click(cur_game) * get_multiplifier(cur_game)); + set_score(cur_game, 0); + ++cur_game->click; + ++cur_game->multiplifier; } break; } + + if (cur_game->score < 0) + { + set_score(cur_game, 0); + } } /* Remove the main window and exit */ endwin: endwin(); printf("You have got %d points.\n", cur_game->score); + /* TODO: deal with valgrind complaints */ + free(cur_game); exit(EXIT_SUCCESS); } -int -get_score (struct game *game) -{ - return game->score; -} - void set_score (struct game *game, int score) { + int score_len = snprintf(NULL, 0, "%d", game->score); + for (int i = 0; i <= score_len; ++i) + { + mvaddch(3, i + 1, ' '); + refresh(); + } + game->score = score; mvprintw(3, 1, "%d", game->score); } - -int -get_click (struct game *game) -{ - return game->click; -} - -void -set_click (struct game *game, int click) -{ - game->click = click; -} - -int -get_multiplifier (struct game *game) -{ - return game->multiplifier; -} |