Home » C programs » Advance C programs

C program to design flying characters Screen Saver



This C program will display flying characters just like a Screen Saver, here is a set of characters that will access randomly and position on the screen will also random and on the random position program will display random character from assigned set of characters until user does not press any key.

Flying Characters as Screen Saver using C program

/*C program to design flying characters Screen Saver.*/

#include <stdio.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>

/*will return character based on passed number*/
char getCHAR(int n)
{
	char ok[]="[email protected]#$%^&*:;'\",{}|<>=";
	return ok[n];
}

/*function to identify that any key hit by the keyboard*/
int kbhit(void)
{
  struct termios oldt, newt;
  int ch;
  int oldf;
 
  tcgetattr(STDIN_FILENO, &oldt);
  newt = oldt;
  newt.c_lflag &= ~(ICANON | ECHO);
  tcsetattr(STDIN_FILENO, TCSANOW, &newt);
  oldf = fcntl(STDIN_FILENO, F_GETFL, 0);
  fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK);
 
  ch = getchar();
 
  tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
  fcntl(STDIN_FILENO, F_SETFL, oldf);
 
  if(ch != EOF)
  {
    ungetc(ch, stdin);
    return 1;
  }
 
  return 0;
}
 
/*move cursor on specified position on screen*/
void gotoxy(int x,int y)
{
printf("%c[%d;%df",0x1B,y,x);
}

int main(void) {
	int x,y;
	long int i,j;
	i=j=0;

	x=1; y=20;
	system("clear");

    /*program will run until any key hit*/
	while(!kbhit())
	{
		x=rand()%((150-1+1)+1);
		y=rand()%((50-1+1)+1);
		gotoxy(x,y);
		printf("%c", getCHAR(rand()%((20-1+1)+1))); fflush(stdout);
		++i;
		if(i==10000) {++j; i=0;}
		if(j==100000){ i=0;}
		if(j<=100)
			usleep(30000);
		if(j<=1000)
			usleep(3000);
		if(j<=10000)
			usleep(300);
	}
    return 0;
}

Output

#!        ;             %                          :     @   ^                 ,
           %!                            {              ^  |               =   ~
     =            %      @  %        ;>*              !  }      @  ~           %
                                                       } {   ,                 {
!       {         "    $       %'  "            >  @                           *
    %                     '                       ~                            %
         ^                                                                ,    #
                       < ;                                ^        '   ^       *
               %                                                 #  :          !
          $        $                                @          *  :            #
    # "                  ,                        }    '                       |
                                                                               #
'                                        #   $                                 #
' &           %            }          {                                   :    $
        >     =            {      #                              {             $
    }                 < #               *      :               %   @           }
                              = >                   %*                         ,
                        <  &            "    <                        < "!     <
                                  *                                            &
             @                                                                 ;
      }   >                                                                    <
        }                      ; ,                      :      %               $






Was this page helpful? YES NO

Are you a blogger? Join our Blogging forum.



Comments and Discussions


We are using Google to publish ads on our website; Google has its own privacy policies. They may save log, cookies on your system. Google may also collect information of your system like IP address, region, city, country. For more details please go through the Google’s privacy policy.