C言語でハート形のビートを作成する方法
以下にC言語で書かれたハートの点滅コードの例を示します。
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <unistd.h>
#define HEART_WIDTH 10
#define HEART_HEIGHT 7
// 心形的像素矩阵
const bool heart[HEART_HEIGHT][HEART_WIDTH] = {
{false, false, true, true, false, false, true, true, false, false},
{false, true, true, true, true, true, true, true, true, false},
{false, true, true, true, true, true, true, true, true, false},
{false, false, true, true, true, true, true, true, false, false},
{false, false, false, true, true, true, true, false, false, false},
{false, false, false, false, true, true, false, false, false, false},
{false, false, false, false, false, false, false, false, false, false},
};
// 清屏函数
void clearScreen() {
printf("\033[2J");
fflush(stdout);
}
// 打印心形函数
void printHeart(bool isFilled) {
for (int i = 0; i < HEART_HEIGHT; i++) {
for (int j = 0; j < HEART_WIDTH; j++) {
if (isFilled) {
printf(heart[i][j] ? "*" : " ");
} else {
printf(heart[i][j] ? "♥" : " ");
}
}
printf("\n");
}
}
int main() {
while (true) {
clearScreen();
printHeart(true);
usleep(500000); // 暂停500毫秒
clearScreen();
printHeart(false);
usleep(500000);
}
return 0;
}
このコードはASCII文字でハートを描画し、端末コマンド\033[2Jで画面をクリアします。ループによりハートの塗りつぶしの有無を切り替えることで、明滅効果が得られます。このコードはほとんどの端末で動作しますが、一部の端末ではハートを正しく表示するために調整が必要となる場合があります。