#include #include /* rand() */ #include /* time() */ #define HEIGHT 30 #define WIDTH 120 void gotoxy(int x, int y) { printf("\033[%d;%dH", x, y); } main() { int t, i, j, h0, h1, w0, w1, tmp; { /* この中カッコの中(乱数の種の設定)はわからなくてもよい */ unsigned seed = (unsigned)time(NULL); /* 現在時刻を取得して */ printf("乱数の種は %u です.\n", seed); srand(seed); /* それを乱数の種に */ } printf("\033[2J"); /* 画面クリア */ for (t = 0; t < 10000; t++) { h0 = rand() % HEIGHT + 1; /* 長方形の上端・下端 */ h1 = rand() % HEIGHT + 1; if (h0 > h1) { tmp = h0; h0 = h1; h1 = tmp; } w0 = rand() % WIDTH + 1; /* 長方形の左端・右端 */ w1 = rand() % WIDTH + 1; if (w0 > w1) { tmp = w0; w0 = w1; w1 = tmp; } for (i = h0; i <= h1; i++) { /* 長方形を描く */ gotoxy(i, w0); for (j = w0; j <= w1; j++) { if (t % 8 == 0) { /* t % 8 で書く文字が決まる */ printf("!"); } else if (t % 8 == 1) { printf("#"); } else if (t % 8 == 2) { printf("$"); } else if (t % 8 == 3) { printf("%%"); } else if (t % 8 == 4) { printf("&"); } else if (t % 8 == 5) { printf("+"); } else if (t % 8 == 6) { printf("*"); } else if (t % 8 == 7) { printf("-"); } } } fflush(stdout); for (i = 0; i < 10000; i++) { /* 時間かせぎの空ループ */ for (j = 0; j < 5000; j++) { ; } } } }