⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 firework.c

📁 ncurses 库 可能有用酒用 没用就算了 我觉得还可以用
💻 C
字号:
/* * $Id: firework.c,v 1.21 2005/05/28 21:39:04 tom Exp $ */#include <test.priv.h>#include <time.h>static int my_bg = COLOR_BLACK;static voidcleanup(void){    curs_set(1);    endwin();}static RETSIGTYPEonsig(int n GCC_UNUSED){    cleanup();    ExitProgram(EXIT_FAILURE);}static voidshowit(void){    int ch;    napms(120);    if ((ch = getch()) != ERR) {#ifdef KEY_RESIZE	if (ch == KEY_RESIZE) {	    erase();	} else#endif	if (ch == 'q') {	    cleanup();	    ExitProgram(EXIT_SUCCESS);	} else if (ch == 's') {	    nodelay(stdscr, FALSE);	} else if (ch == ' ') {	    nodelay(stdscr, TRUE);	}    }}staticintget_colour(chtype * bold){    int attr;    attr = (rand() % 16) + 1;    *bold = A_NORMAL;    if (attr > 8) {	*bold = A_BOLD;	attr &= 7;    }    return (attr);}staticvoidexplode(int row, int col){    chtype bold;    erase();    mvprintw(row, col, "-");    showit();    init_pair(1, get_colour(&bold), my_bg);    attrset(COLOR_PAIR(1) | bold);    mvprintw(row - 1, col - 1, " - ");    mvprintw(row + 0, col - 1, "-+-");    mvprintw(row + 1, col - 1, " - ");    showit();    init_pair(1, get_colour(&bold), my_bg);    attrset(COLOR_PAIR(1) | bold);    mvprintw(row - 2, col - 2, " --- ");    mvprintw(row - 1, col - 2, "-+++-");    mvprintw(row + 0, col - 2, "-+#+-");    mvprintw(row + 1, col - 2, "-+++-");    mvprintw(row + 2, col - 2, " --- ");    showit();    init_pair(1, get_colour(&bold), my_bg);    attrset(COLOR_PAIR(1) | bold);    mvprintw(row - 2, col - 2, " +++ ");    mvprintw(row - 1, col - 2, "++#++");    mvprintw(row + 0, col - 2, "+# #+");    mvprintw(row + 1, col - 2, "++#++");    mvprintw(row + 2, col - 2, " +++ ");    showit();    init_pair(1, get_colour(&bold), my_bg);    attrset(COLOR_PAIR(1) | bold);    mvprintw(row - 2, col - 2, "  #  ");    mvprintw(row - 1, col - 2, "## ##");    mvprintw(row + 0, col - 2, "#   #");    mvprintw(row + 1, col - 2, "## ##");    mvprintw(row + 2, col - 2, "  #  ");    showit();    init_pair(1, get_colour(&bold), my_bg);    attrset(COLOR_PAIR(1) | bold);    mvprintw(row - 2, col - 2, " # # ");    mvprintw(row - 1, col - 2, "#   #");    mvprintw(row + 0, col - 2, "     ");    mvprintw(row + 1, col - 2, "#   #");    mvprintw(row + 2, col - 2, " # # ");    showit();}intmain(	int argc GCC_UNUSED,	char *argv[]GCC_UNUSED){    int j;    int start, end, row, diff, flag = 0, direction;    unsigned seed;    for (j = SIGHUP; j <= SIGTERM; j++)	if (signal(j, SIG_IGN) != SIG_IGN)	    signal(j, onsig);    initscr();    noecho();    cbreak();    keypad(stdscr, TRUE);    nodelay(stdscr, TRUE);    if (has_colors()) {	start_color();#if HAVE_USE_DEFAULT_COLORS	if (use_default_colors() == OK)	    my_bg = -1;#endif    }    curs_set(0);    seed = time((time_t *) 0);    srand(seed);    for (;;) {	do {	    start = rand() % (COLS - 3);	    end = rand() % (COLS - 3);	    start = (start < 2) ? 2 : start;	    end = (end < 2) ? 2 : end;	    direction = (start > end) ? -1 : 1;	    diff = abs(start - end);	} while (diff < 2 || diff >= LINES - 2);	attrset(A_NORMAL);	for (row = 0; row < diff; row++) {	    mvprintw(LINES - row, start + (row * direction),		     (direction < 0) ? "\\" : "/");	    if (flag++) {		showit();		erase();		flag = 0;	    }	}	if (flag++) {	    showit();	    flag = 0;	}	seed = time((time_t *) 0);	srand(seed);	explode(LINES - row, start + (diff * direction));	erase();	showit();    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -