#include <stdio.h>
#define M ('B' - 'A' + 1)

char moji[] =
    "AABAAADDAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA\n"
    "BBBBBBBBBCCCBBBBBDDDBBDDDAAAAAAAAAAAAA  \n"
    "  EEEEEEEEEEEEEE     FFFFFFF         DDD\n"
    "DDDGGGBBBBBBBB    SSSSSSSS DDFFFFAAAAAAA\n";

int main(void)
{
    int cycle[M] = {5, 3};
    int count[M] = {5, 3};
    int show[M] = {1, 1};
    char *p;
    int i, n;

    for (n = 100; n; --n) {
        puts("----------------");
        for (p = moji; *p; p++) {
            if (*p == 'A' || *p == 'B') {
                if (show[*p - 'A'])
                    putchar(*p);
                else
                    putchar(' ');
            } else {
                putchar(*p);
            }
        }
        fflush(stdout);
        for (i = 0; i < M; ++i)
            if (!--count[i]) {
                count[i] = cycle[i];
                show[i] ^= 1;
            }
        // usleep(100000); // ←時間稼ぎ Windowsで動くかわからん。
    }
}

