curses 类程序, 包含头文件为stdio.h 和 curses.h /******************************************************************************* * Program ID : 001 * Program Name : redfox * * File ID : fox_001 * File Name : fox.c * * Description : * Output "fox" to your screen. * * Modify Record : * 2005/02/19/ yangyu creat * 2005/06/16/ yangyu fix (add curs_set(0)) * * Comment : * Compilation Method : gcc -lcurses -o redfox fox.c * Runing Method : ./redfox ******************************************************************************/ #include #include #define FONTCOLOR COLOR_RED /******************************************************************************* * Function ID : F_001 * Function Name : F_Inital * * Function Description : * Screen inital * * Parameters : void * * Return Value : int * 0 : Success * none of 0 : Failed * * Modify Record : * 2005/02/19/ yangyu creat ******************************************************************************/ int F_Inital(void) { initscr(); cbreak(); nonl(); noecho(); intrflush(stdscr, FALSE); keypad(stdscr, TRUE); curs_set(0); refresh(); return 0; }
/******************************************************************************* * Function ID : F_002 * Function Name : F_OutPut_o * * Function Description : * Write "O" to screen * * Parameters : void * * Return Value : void * * Modify Record : * 2005/02/19/ yangyu creat ******************************************************************************/ void F_OutPut_o(void) { int iLine = LINES/2 -4; int iCol = COLS/2; int i = 0;
for(;i < 4; i++) { move(iLine, iCol-i); addch('@'); refresh(); usleep(10); } for(i = 0; i < 4; i++) { move(iLine+i+1, iCol-4); addch('@'); refresh(); usleep(10); } for(i = 4; i > 0; i--) { move(iLine+5, iCol-(i-1)); addch('@'); refresh(); usleep(10); } for(i = 4; i > 0; i--) { move(iLine+i, iCol+1); addch('@'); refresh(); usleep(10); } } /******************************************************************************* * Function ID : F_003 * Function Name : F_OutPut_f * * Function Description : * Write "F" to screen * * Parameters : void * * Return Value : void * * Modify Record : * 2005/02/19/ yangyu creat ******************************************************************************/ void F_OutPut_f(void) { int iLine = 0; int iCol = 0; int i; iLine = LINES/2; iCol = COLS/4; for(i = 0; i < 6; i++) { move(iLine-4, iCol+i); addch('@'); refresh(); usleep(10); } for(i =4; i >= -1; i--) { move(iLine-i, iCol); addch('@'); refresh(); usleep(10); } for(i = 0; i < 4; i++) { move(iLine-2, iCol+1+i); addch('@'); refresh(); usleep(10); } } /******************************************************************************* * Function ID : F_004 * Function Name : F_OutPut_x * * Function Description : * Write "X" to screen * * Parameters : void * * Return Value : void * * Modify Record : * 2005/02/19/ yangyu creat ******************************************************************************/ void F_OutPut_x(void) { int iLine = LINES/2; int iCol = COLS/4 * 3-4; int i; for(i = 0; i < 6; i++) { move(iLine-4+i, iCol-2+i); addch('@'); refresh(); usleep(10); } for(i = 0; i < 6; i++) { move(iLine-4+i, iCol+2-i); addch('@'); refresh(); usleep(10); } } /******************************************************************************* * Function ID : F_005 * Function Name : F_OutPut_logo * * Function Description : * Write ">>Staring linux" to screen * * Parameters : void * * Return Value : void * * Modify Record : * 2005/02/19/ yangyu creat ******************************************************************************/ void F_OutPut_logo(void) { char strBuf[14] = {"Staring Linux"}; char strBigBuf[1024]; char strLargeBuf[1024+14]; int i; memset(strBigBuf, 0x0, sizeof(strBigBuf)); memset(strLargeBuf, 0x0, sizeof(strLargeBuf)); for(i = 0; i < COLS-14; i++) { strcat(strBigBuf,">"); sprintf(strLargeBuf,"%s%s", strBigBuf, strBuf); move(LINES-2,0); addstr(strLargeBuf); refresh(); usleep(10); } } /******************************************************************************* * Function ID : F_006 * Function Name : main * * Function Description : * main function. * * Parameters : void * * Return Value : int * 0 : Success * none of 0 : Failed * Modify Record : * 2005/02/19/ yangyu creat ******************************************************************************/ int main(void) { int iFlag = 0; F_Inital(); /* Screen inital */ if(has_colors() != 0) { start_color(); init_pair(1, FONTCOLOR, COLOR_BLACK); attron(COLOR_PAIR(1)); attron(A_BOLD); iFlag = 1; } /* sub function call */ F_OutPut_o(); F_OutPut_f(); F_OutPut_x(); F_OutPut_logo(); if(iFlag == 1) { attroff(A_BOLD); } endwin(); return 0; } /******************************** End of File *********************************/ |