/* Chip's random ooze continent generation program */
/* for documentation, follow this link... */
/* for output, follow this link... */
#include <stdio.h>
#define elif else if
char string[] = " \177";
int screen[60][80];
main (ac, av)
int ac;
char *av[];
{
int showevery;
int times;
int i;
if (ac > 3)
srand (atoi (av[3]));
else
srand (getpid());
if (ac > 2)
times = atoi (av[2]);
else
times = 1;
if (ac > 1)
showevery = atoi (av[1]);
else
showevery = rand();
init();
for (i = 0; i < times; i++) {
drift (showevery);
printthepattern ();
}
}
init()
{
int i, j;
for (i = 0; i < 60; i++) {
for (j = 0; j < 80; j++)
screen[i][j] = rand()%2 * 1;
}
}
drift (times)
int times;
{
int i;
int x;
int y;
int pixel;
for (i = 0; i < times; i++) {
x = rand () % 80;
y = rand () % 59;
pixel = screen[y][x];
if (x<79) screen[y][x+1] = pixel;
if (x>0) screen[y][x-1] = pixel;
if (y<58) screen[y+1][x] = pixel;
if (y>0) screen[y-1][x] = pixel;
}
}
printthepattern ()
{
int i, j;
gotoxy (0, 0);
for (i = 0; i < 59; i++) {
for (j = 0; j < 79; j++) {
printf ("%c", string[screen[i][j]]);
}
eraseol ();
printf ("\n");
}
}
gotoxy (x, y)
int x, y;
{
printf ("\33[%d;%df", y+1, x+1);
}
eraseol ()
{
printf ("\33[K");
}