#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); printf("\033[%dm", 100 + t % 7); /* 色づけ。反転表示 */ for (j = w0; j <= w1; j++) { printf(" "); } printf("\033[m"); } fflush(stdout); for (i = 0; i < 10000; i++) { /* 時間かせぎの空ループ */ for (j = 0; j < 5000; j++) { ; } } } }