2 * $Id: rain.c,v 1.13 1999/10/23 01:31:26 tom Exp $
6 #include <term.h> /* for tparm() */
10 /* rain 11/3/1980 EPS/CITHEP */
12 static float ranf(void);
13 static void onsig(int sig);
15 static int next_j(int j)
17 if (j==0) j=4; else --j;
19 int z = (int)(3*ranf());
20 chtype color = COLOR_PAIR(z);
31 char *argv[] GCC_UNUSED)
34 static int xpos[5], ypos[5];
38 for (j=SIGHUP;j<=SIGTERM;j++)
39 if (signal(j,SIG_IGN)!=SIG_IGN) signal(j,onsig);
45 #ifdef NCURSES_VERSION
46 if (use_default_colors() == OK)
49 init_pair(1, COLOR_BLUE, bg);
50 init_pair(2, COLOR_CYAN, bg);
57 r = (float)(LINES - 4);
58 c = (float)(COLS - 4);
60 xpos[j]=(int)(c* ranf())+2;
61 ypos[j]=(int)(r* ranf())+2;
70 mvaddch(ypos[j], xpos[j], 'o');
73 mvaddch(ypos[j], xpos[j], 'O');
76 mvaddch( ypos[j]-1, xpos[j], '-');
77 mvaddstr(ypos[j], xpos[j]-1, "|.|");
78 mvaddch( ypos[j]+1, xpos[j], '-');
81 mvaddch( ypos[j]-2, xpos[j], '-');
82 mvaddstr(ypos[j]-1, xpos[j]-1, "/ \\");
83 mvaddstr(ypos[j], xpos[j]-2, "| O |");
84 mvaddstr(ypos[j]+1, xpos[j]-1, "\\ /");
85 mvaddch( ypos[j]+2, xpos[j], '-');
88 mvaddch( ypos[j]-2, xpos[j], ' ');
89 mvaddstr(ypos[j]-1, xpos[j]-1, " ");
90 mvaddstr(ypos[j], xpos[j]-2, " ");
91 mvaddstr(ypos[j]+1, xpos[j]-1, " ");
92 mvaddch( ypos[j]+2, xpos[j], ' ');
94 xpos[j] = x; ypos[j] = y;
102 return(EXIT_SUCCESS);
104 nodelay(stdscr, FALSE);
107 nodelay(stdscr, TRUE);
111 r = (float)(LINES - 4);
112 c = (float)(COLS - 4);
121 onsig(int n GCC_UNUSED)
131 long r = (rand() & 077777);
132 return ((float) r / 32768.);