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 行のテキストが表示されます。
上記のコードでは、コンソールエスケープシーケンスで背景色を出力するため、エスケープシーケンスに対応した端末でのみ動作します。