在windows上用C语言写一段超大的爱心闪烁
时间: 2024-03-18 21:39:53 浏览: 106
好的,我可以为你提供一个简单的Windows控制台程序,它可以在控制台上显示超大的爱心并闪烁。这个程序使用了Windows Console API和C语言。
以下是程序代码:
```
#include <Windows.h>
#include <stdio.h>
#define HEART_WIDTH 31
#define HEART_HEIGHT 21
const char* HEART[] = {
" * * * * ",
" * * * * ",
" * * ",
" * * ",
" * *** * ",
" * * * *",
"* * * *",
"* * * *",
"* * * *",
"* * * *",
" * * * *",
" * *** * ",
" * * ",
" * * ",
" * * ",
" * * ",
" * * ",
" * ",
" ",
" ",
" "
};
int main() {
HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cursorInfo;
GetConsoleCursorInfo(console, &cursorInfo);
cursorInfo.bVisible = FALSE;
SetConsoleCursorInfo(console, &cursorInfo);
COORD pos = { 0, 0 };
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(console, &csbi);
int screenWidth = csbi.srWindow.Right - csbi.srWindow.Left + 1;
int screenHeight = csbi.srWindow.Bottom - csbi.srWindow.Top + 1;
while (1) {
for (int y = 0; y < HEART_HEIGHT; y++) {
pos.Y = (screenHeight - HEART_HEIGHT) / 2 + y;
for (int x = 0; x < HEART_WIDTH; x++) {
pos.X = (screenWidth - HEART_WIDTH) / 2 + x;
if (HEART[y][x] == '*') {
SetConsoleCursorPosition(console, pos);
SetConsoleTextAttribute(console, FOREGROUND_RED | FOREGROUND_INTENSITY);
printf("*");
}
}
}
Sleep(500);
for (int y = 0; y < HEART_HEIGHT; y++) {
pos.Y = (screenHeight - HEART_HEIGHT) / 2 + y;
for (int x = 0; x < HEART_WIDTH; x++) {
pos.X = (screenWidth - HEART_WIDTH) / 2 + x;
if (HEART[y][x] == '*') {
SetConsoleCursorPosition(console, pos);
SetConsoleTextAttribute(console, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY);
printf("*");
}
}
}
Sleep(500);
}
return 0;
}
```
程序中定义了一个超大的爱心图案,存储在HEART数组中。程序使用Windows Console API来获取控制台的大小,并将爱心图案居中显示在控制台中央。程序使用Sleep函数来使爱心图案闪烁。
注意:由于控制台的大小限制,程序可能无法在所有的屏幕分辨率上正确显示。如果你遇到了这个问题,可以尝试调整HEART数组中爱心图案的大小,以适应你的屏幕分辨率。
希望这个程序能帮助到你,如果你有任何问题,请随时问我。
阅读全文