用C语言实现会动的爱心树
时间: 2024-04-30 12:20:01 浏览: 37
以下是用 C 语言实现会动的爱心树的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <windows.h>
#define TREE_HEIGHT 20
#define TREE_WIDTH 60
void drawTree(int x, int y);
void putchxy(char ch, int x, int y);
int main()
{
int i = 0, j = 0, k = 0;
int x = TREE_WIDTH / 2, y = TREE_HEIGHT + 1;
int delay = 100;
char* message = "I Love You!";
// 清屏
system("cls");
// 绘制爱心树
drawTree(x, y);
// 显示消息
for (i = 0; i < strlen(message); i++)
{
putchxy(message[i], x - strlen(message) / 2 + i, y + 2);
Sleep(delay);
}
// 闪烁消息
for (k = 0; k < 10; k++)
{
for (i = 0; i < strlen(message); i++)
{
putchxy(' ', x - strlen(message) / 2 + i, y + 2);
}
Sleep(delay);
for (i = 0; i < strlen(message); i++)
{
putchxy(message[i], x - strlen(message) / 2 + i, y + 2);
}
Sleep(delay);
}
// 退出程序
getch();
return 0;
}
// 在指定位置输出字符
void putchxy(char ch, int x, int y)
{
COORD pos = { x, y };
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
putchar(ch);
}
// 绘制爱心树
void drawTree(int x, int y)
{
int i = 0, j = 0;
for (i = 0; i < TREE_HEIGHT; i++)
{
for (j = 0; j < TREE_WIDTH; j++)
{
if (i < TREE_HEIGHT - 3 && j >= x - i && j <= x + i)
{
putchxy('*', j, i);
}
else if (i >= TREE_HEIGHT - 3 && (j == x - 2 || j == x + 2))
{
putchxy('*', j, i);
}
else if (i == TREE_HEIGHT - 2 && j >= x - 2 && j <= x + 2)
{
putchxy('*', j, i);
}
}
}
}
```
程序运行后,会在控制台中绘制一个爱心树,然后显示一条消息 "I Love You!",并在闪烁几次后退出程序。可以根据需要调整爱心树的大小和消息的内容。
阅读全文