C言語でランダムな色変化を実現するには?

C言語のrand()関数で乱数を生成し、適当なアルゴリズムで乱数をRGB色空間の3成分(赤、緑、青)に対応させることで、ランダムな色変化を実現する。

コンソール内でランダムな色変化を実装する、簡単なサンプルコードを以下に示します。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// 生成0到max之间的随机整数
int getRandomNumber(int max) {
    return rand() % (max + 1);
}

// 生成随机颜色并在控制台中显示
void displayRandomColor() {
    int red = getRandomNumber(255);
    int green = getRandomNumber(255);
    int blue = getRandomNumber(255);

    printf("\033[48;2;%d;%d;%dm", red, green, blue);
    printf("Random Color");
    printf("\033[0m");  // 恢复控制台默认颜色
}

int main() {
    srand(time(NULL));  // 设置随机数种子为当前时间

    for (int i = 0; i < 10; i++) {
        displayRandomColor();
        printf("\n");
    }

    return 0;
}

getRandomNumber()関数は 0 から max の範囲の数値を生成し、displayRandomColor()関数はランダムな色を生成し、コンソールのエスケープシーケンスで背景色を設定し、printf()関数はランダムな色のテキストを表示します。実行すると、背景色がランダムな 10 行のテキストが表示されます。

上記のコードでは、コンソールエスケープシーケンスで背景色を出力するため、エスケープシーケンスに対応した端末でのみ動作します。

bannerAds