#include #include #include struct crypto_coin { const char *name; const char *description; double prices[30]; }; enum game_state { GAME_BEGIN, GAME_IDLE, GAME_BUY, GAME_SELL, GAME_END, }; struct game { enum game_state state; int bank; int time; struct crypto_coin coin; }; void game_draw(struct game *g) { mvaddstr(0, 0, g->coin.name); mvaddstr(1, 0, "-----------------"); mvaddstr(2, 0, g->coin.description); char buf[50]; mvaddstr(3, 0, "You have: "); sprintf(buf, "%i dollars.", g->bank); mvaddstr(3, 15, buf); for (int i = 0; i < 20; i++) { mvaddch(i+5, 0, '|'); } for (int i = 0; i < g->time; i++) { color_set(1, NULL); mvaddch(20 - g->coin.prices[i]+5, i+1, '-'); for (int j = 20 - g->coin.prices[i] + 1; j < 20; j++) { color_set(2, NULL); mvaddch(j+5, i+1, ' '); } } g->time++; refresh(); } int main(void) { initscr(); start_color(); init_pair(1, COLOR_BLACK, COLOR_RED); init_pair(2, COLOR_BLACK, COLOR_GREEN); cbreak(); noecho(); nonl(); intrflush(stdscr, FALSE); keypad(stdscr, TRUE); clear(); refresh(); struct game game = { .state = GAME_BEGIN, .bank = 1000, .time = 0, .coin = (struct crypto_coin) { .name = "BitCoin", .description = "A fucking scam.", .prices = { 10, 11, 12, 12, 12, 12, 12, 13, 13, 13, 11, 11, 10, 10, 9, 9, 10, 10, 11, 11, 11, 12, } } }; for (int i = 0; i < 20; i++) { game_draw(&game); sleep(1); } refresh(); sleep(10); endwin(); }