holiday cheer again -- jew.c
Steven M. Kramer
smk at linus.UUCP
Mon Dec 5 06:14:32 AEST 1983
Oh, the holidays are here again. It is snowing out (here in NE).
So it's time again to post holiday source code. Here is my
contribution again ... I call it jew.
You need the /dev/ft device (or the nap system call -- but then
delete the nap routine here) for this to be effective.
--------------------------
#include <curses.h>
#define FLICKER 40
main()
{
int x, y;
srand ((int) time (0));
/*
* If you don't have the Berkeley "curses" library, delete
* this routine call.
*/
initscr();
clear();
refresh();
sleep(1);
output2(4, 39, '*'); output2(4, 41, '*');
output2(5, 39, '*'); output2(5, 41, '*');
output2(6, 39, '*'); output2(6, 41, '*');
output2(7, 39, '*'); output2(7, 41, '*');
output2(8, 39, '*'); output2(8, 41, '*');
output2(9, 39, '*'); output2(9, 41, '*');
output2(10, 39, '*'); output2(10, 41, '*');
output2(11, 39, '*'); output2(11, 41, '*');
output2(12, 39, '*'); output2(12, 41, '*');
output2(13, 39, '*'); output2(13, 41, '*');
output2(14, 39, '*'); output2(14, 41, '*');
output2(15, 39, '*'); output2(15, 41, '*');
output2(16, 39, '*'); output2(16, 41, '*');
output2(17, 39, '*'); output2(17, 41, '*');
output2(18, 39, '*'); output2(18, 41, '*');
output2(19, 36, '*'); output2(19, 44, '*');
output2(20, 34, '*'); output2(20, 46, '*');
for (x = 35; x <= 45; x++)
output2 (21, x, '_');
move(0,0);
refresh();
sleep(3);
output2 (5, 14, '*'); output2 (5, 16, '*');
output2 (5, 64, '*'); output2 (5, 66, '*');
for (x=6; x<= 9; x++)
{
output2 (x, 8+x, '*'); output2 (x, 10+x, '*');
output2 (x, 70-x, '*'); output2 (x, 72-x, '*');
}
output2(10, 19, '*'); output2(10, 21, '*');
output2(10, 59, '*'); output2(10, 61, '*');
output2(11, 21, '*'); output2(11, 23, '*');
output2(11, 57, '*'); output2(11, 59, '*');
output2(12, 23, '*'); output2(12, 25, '*');
output2(12, 55, '*'); output2(12, 57, '*');
output2(13, 25, '*'); output2(13, 27, '*');
output2(13, 53, '*'); output2(13, 55, '*');
output2(14, 27, '*'); output2(14, 29, '*');
output2(14, 51, '*'); output2(14, 53, '*');
output2(15, 30, '*'); output2(15, 32, '*');
output2(15, 48, '*'); output2(15, 50, '*');
output2(16, 33, '*'); output2(16, 35, '*');
output2(16, 45, '*'); output2(16, 47, '*');
output2(17, 36, '*'); output2(17, 38, '*');
output2(17, 42, '*'); output2(17, 44, '*');
move(0,0);
refresh();
sleep(3);
output2 (5, 20, '*'); output2 (5, 22, '*');
output2 (5, 58, '*'); output2 (5, 60, '*');
for (x=6; x<= 9; x++)
{
output2 (x, 14+x, '*'); output2 (x, 16+x, '*');
output2 (x, 64-x, '*'); output2 (x, 66-x, '*');
}
output2(10, 25, '*'); output2(10, 27, '*');
output2(10, 53, '*'); output2(10, 55, '*');
output2(11, 27, '*'); output2(11, 29, '*');
output2(11, 51, '*'); output2(11, 53, '*');
output2(12, 29, '*'); output2(12, 31, '*');
output2(12, 49, '*'); output2(12, 51, '*');
output2(13, 31, '*'); output2(13, 33, '*');
output2(13, 47, '*'); output2(13, 49, '*');
output2(14, 33, '*'); output2(14, 35, '*');
output2(14, 45, '*'); output2(14, 47, '*');
output2(15, 36, '*'); output2(15, 38, '*');
output2(15, 42, '*'); output2(15, 44, '*');
move(0,0);
refresh();
sleep(2);
output2 (5, 26, '*'); output2 (5, 28, '*');
output2 (5, 52, '*'); output2 (5, 54, '*');
for (x=6; x<= 9; x++)
{
output2 (x, 20+x, '*'); output2 (x, 22+x, '*');
output2 (x, 58-x, '*'); output2 (x, 60-x, '*');
}
output2(10, 31, '*'); output2(10, 33, '*');
output2(10, 47, '*'); output2(10, 49, '*');
output2(11, 33, '*'); output2(11, 35, '*');
output2(11, 45, '*'); output2(11, 47, '*');
output2(12, 35, '*'); output2(12, 37, '*');
output2(12, 43, '*'); output2(12, 45, '*');
move(0,0);
refresh();
sleep(2);
output2 (5, 32, '*'); output2 (5, 34, '*');
output2 (5, 46, '*'); output2 (5, 48, '*');
for (x=6; x<= 9; x++)
{
output2 (x, 26+x, '*'); output2 (x, 28+x, '*');
output2 (x, 52-x, '*'); output2 (x, 54-x, '*');
}
output2(10, 37, '*'); output2(10, 43, '*');
move(0,0);
refresh();
sleep(3);
output2(3, 39, '|'); output2(3, 41, '|');
output2(4, 14, '|'); output2(4, 16, '|');
output2(4, 66, '|'); output2(4, 64, '|');
output2(4, 60, '|'); output2(4, 58, '|');
output2(4, 20, '|'); output2(4, 22, '|');
output2(4, 26, '|'); output2(4, 28, '|');
output2(4, 54, '|'); output2(4, 52, '|');
output2(4, 48, '|'); output2(4, 46, '|');
output2(4, 32, '|'); output2(4, 34, '|');
move(0,0);
refresh();
sleep(3);
random (0);
output2(23, 10, 'D'); output2(23, 12, 'A'); output2(23, 14, 'Y');
output2(23, 16, ':');
output2(23, 20, '1');
output2(3, 64, '/'); output2(3, 66, '\\');
random(1);
output2(23, 20, '2');
output2(3, 58, '/'); output2(3, 60, '\\');
random(2);
output2(23, 20, '3');
output2(3, 52, '/'); output2(3, 54, '\\');
random(3);
output2(23, 20, '4');
output2(3, 46, '/'); output2(3, 48, '\\');
random(4);
output2(23, 20, '5');
output2(3, 32, '/'); output2(3, 34, '\\');
random(5);
output2(23, 20, '6');
output2(3, 26, '/'); output2(3, 28, '\\');
random(6);
output2(23, 20, '7');
output2(3, 20, '/'); output2(3, 22, '\\');
random(7);
output2(23, 20, '8');
output2(3, 14, '/'); output2(3, 16, '\\');
random(8);
output2(2, 39, '/'); output2(2, 41, '\\');
output2(3, 14, '/'); output2(3, 16, '\\');
output2(3, 20, '/'); output2(3, 22, '\\');
output2(3, 26, '/'); output2(3, 28, '\\');
output2(3, 32, '/'); output2(3, 34, '\\');
output2(3, 46, '/'); output2(3, 48, '\\');
output2(3, 52, '/'); output2(3, 54, '\\');
output2(3, 58, '/'); output2(3, 60, '\\');
output2(3, 64, '/'); output2(3, 66, '\\');
output2(23, 10, ' '); output2(23, 12, ' '); output2(23, 14, ' ');
output2(23, 16, ' '); output2(23, 20, ' ');
output2(23, 24, 'H'); output2(23, 26, 'A'); output2(23, 28, 'P');
output2(23, 30, 'P'); output2(23, 32, 'Y');
output2(23, 34, ' '); output2(23, 36, 'C');
output2(23, 38, 'H'); output2(23, 40, 'A'); output2(23, 42, 'N');
output2(23, 44, 'U'); output2(23, 46, 'K'); output2(23, 48, 'A');
output2(23, 50, 'H'); output2(23, 52, '!'); output2(23, 54, '!');
output2(23, 56, '!');
move(23,0);
refresh();
/*
* If you don't have the Berkeley "curses" library, delete
* this routine call.
*/
endwin();
}
output(y, x, c)
int y, x;
char c;
{
mvaddch(y-1, x, c);
refresh();
/*
* If your system doesn't have the "nap()" system call,
* delete this line.
*/
nap(6);
}
output2(y, x, c)
int y, x;
char c;
{
mvaddch(y-1, x, c);
refresh();
}
random (day)
register int day;
{
register int repeat;
for (repeat = 0; repeat < FLICKER; repeat++)
switch (rand() % (3*(day+1)))
{
case 0:
output(2, 39, '/'); output(2, 41, '\\');
break;
case 1:
output(2, 39, '\\'); output(2, 41, '\\');
break;
case 2:
output(2, 39, '/'); output(2, 41, '/');
break;
case 3:
output(3, 64, '/'); output(3, 66, '\\');
break;
case 4:
output(3, 64, '\\'); output(3, 66, '\\');
break;
case 5:
output(3, 64, '/'); output(3, 66, '/');
break;
case 6:
output(3, 58, '/'); output(3, 60, '\\');
break;
case 7:
output(3, 58, '\\'); output(3, 60, '\\');
break;
case 8:
output(3, 58, '/'); output(3, 60, '/');
break;
case 9:
output(3, 52, '/'); output(3, 54, '\\');
break;
case 10:
output(3, 52, '\\'); output(3, 54, '\\');
break;
case 11:
output(3, 52, '/'); output(3, 54, '/');
break;
case 12:
output(3, 46, '/'); output(3, 48, '\\');
break;
case 13:
output(3, 46, '\\'); output(3, 48, '\\');
break;
case 14:
output(3, 46, '/'); output(3, 48, '/');
break;
case 15:
output(3, 32, '/'); output(3, 34, '\\');
break;
case 16:
output(3, 32, '\\'); output(3, 34, '\\');
break;
case 17:
output(3, 32, '/'); output(3, 34, '/');
break;
case 18:
output(3, 26, '/'); output(3, 28, '\\');
break;
case 19:
output(3, 26, '\\'); output(3, 28, '\\');
break;
case 20:
output(3, 26, '/'); output(3, 28, '/');
break;
case 21:
output(3, 20, '/'); output(3, 22, '\\');
break;
case 22:
output(3, 20, '\\'); output(3, 22, '\\');
break;
case 23:
output(3, 20, '/'); output(3, 22, '/');
break;
case 24:
output(3, 14, '/'); output(3, 16, '\\');
break;
case 25:
output(3, 14, '\\'); output(3, 16, '\\');
break;
case 26:
output(3, 14, '/'); output(3, 16, '/');
break;
}
}
nap(delay)
int delay;
{
static int fd;
if (fd == 0)
fd = open ("/dev/ft", 0);
read (fd, 0, delay);
}
--
--steve kramer
{allegra,genrad,ihnp4,utzoo,philabs,uw-beaver}!linus!smk (UUCP)
linus!smk at mitre-bedford (MIL)
More information about the Comp.sources.unix
mailing list