#include #include #include #include "bsd_rand.h" #define N 512 #define T 32 #define C 0.5 char m[N][N]; static void rand_fill(char c, int n) { while (n--) { int i, j; do { i = bsd_rand(N); j = bsd_rand(N); } while (m[i][j] != ' '); m[i][j] = c; } } static void init_array() { memset(m, ' ', sizeof(m)); rand_fill('r', N * N / 4); rand_fill('b', N * N / 4); } static void print_array() { int i, j; char line[N + 1]; for (j = 0; j < N; j++) { for (i = 0; i < N; i++) { line[i] = m[i][j]; } line[N] = '\n'; fwrite(line, N+1, 1, stdout); } } int main(int argc, char **argv) { int n, cnt, show = 0; if (argc < 2) { fprintf(stderr, "need an argument\n"); return 1; } if (argc > 2) { if (!strcmp(argv[2], "-show")) show = 1; else { fprintf(stderr, "unexpected argument: %s\n", argv[2]); return 1; } } n = atoi(argv[1]); bsd_srand(n); init_array(); if (show) { printf("%d\n", N); print_array(); } cnt = 42; if (!show) printf("%d\n", cnt); return 0; }