* Copyright (c) 1980 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
static char sccsid
[] = "@(#)twinkle1.c 6.1 (Berkeley) %G%";
* the idea for this program was a product of the imagination of
* Kurt Schoens. Not responsible for minds lost or stolen.
LOCS Layout
[NCOLS
* NLINES
]; /* current board layout */
int Pattern
, /* current pattern number */
Numstars
; /* number of stars in pattern */
srand(getpid()); /* initialize random sequence */
makeboard(); /* make the board setup */
puton('*'); /* put on '*'s */
puton(' '); /* cover up with ' 's */
* On program exit, move the cursor to the lower left corner by
* direct addressing, since current location is not guaranteed.
* We lie and say we used to be at the upper right corner to guarantee
mvcur(0, COLS
- 1, LINES
- 1, 0);
* Make the current board setup. It picks a random pattern and
* calls ison() to determine if the character is on that pattern
Pattern
= rand() % MAXPATTERNS
;
for (y
= 0; y
< NLINES
; y
++)
for (x
= 0; x
< NCOLS
; x
++)
* Return TRUE if (y, x) is on the current pattern.
case 0: /* alternating lines */
if (x
>= LINES
&& y
>= NCOLS
)
if (y
< 3 || y
>= NLINES
- 3)
return (x
< 3 || x
>= NCOLS
- 3);
case 2: /* holy pattern! */
case 3: /* bar across center */
return (y
>= 9 && y
<= 15);
for (lp
= Layout
; lp
< end
; lp
++) {
for (lp
= Layout
; lp
< end
; lp
++) {
mvaddch(lp
->y
, lp
->x
, ch
);