Операционная система UNIX. Руководство программиста

       

Программа scatter


Эта программа берет первые (LINES - 1) строк стандартного ввода и отображает символы на экране терминала в случайном порядке. Чтобы эта программа работала правильно, входной файл не должен содержать символов табуляции и неотображаемых символов.

/* Программа scatter */

#include <curses.h> #include <sys/types.h>

extern time_t time ();

#define MAXLINES 120 #define MAXCOLS 160

char s [MAXLINES] [MAXCOLS]; /* Массив экрана */ int T [MAXLINES] [MAXCOLS]; /* Результирующий массив, чтобы сохранять количество и расположение введенных символов */

main () { register int row = 0, col = 0; register int c; int char_count = 0; time_t t; void exit (), srand ();

initscr (); for (row = 0; row < MAXLINES; row++) for (col = 0; col < MAXCOLS; col++) s [row] [col] = ' ';

col = row = 0;

/* Считываем */ while ((c=getchar ()) != EOF && row < LINES) { if (c != '\n') { /* Помещаем символ в массив экрана */ s [row] [col] = c; if (c != ' ') char_count++; } else { col = 0; row++; } }

time (&t); /* Инициализация датчика случайных чисел */ srand ((unsigned) t);

while (char_count) { row = rand () % LINES; col = (rand () >> 2) % COLS; if (T [row] [col] !=1 && s [row] [col] != ' ') { move (row, col); addch (s [row] [col]); T [row] [col] = 1; char_count--; refresh (); } }

endwin (); exit (0); }



Содержание раздела