动态圣诞树代码C语言
时间: 2023-12-14 13:34:13 浏览: 70
以下是一个简单的动态圣诞树代码C语言:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
void gotoxy(int x, int y) {
COORD pos = {x, y};
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOut, pos);
}
int main() {
srand(time(NULL));
int width = 80, height = 25;
int treeHeight = 10;
int trunkWidth = 5, trunkHeight = 3;
int starX = width / 2, starY = treeHeight + 1;
int trunkX = width / 2 - trunkWidth / 2, trunkY = treeHeight + 1;
int i, j, k;
while (1) {
// 清屏
system("cls");
// 打印树冠
for (i = 0; i < treeHeight; i++) {
for (j = 0; j < width - i; j++) {
if (j < i || j > width - i - 2) {
printf(" ");
} else {
printf("\033[32m*\033[0m");
}
}
printf("\n");
}
// 打印树干
for (i = 0; i < trunkHeight; i++) {
for (j = 0; j < trunkWidth; j++) {
gotoxy(trunkX + j, trunkY + i);
printf("\033[33m#\033[0m");
}
}
// 打印星星
gotoxy(starX, starY);
printf("\033[33m*\033[0m");
// 随机移动星星
starX += rand() % 3 - 1;
starY += rand() % 3 - 1;
// 边界检测
if (starX < 0) {
starX = 0;
} else if (starX >= width) {
starX = width - 1;
}
if (starY < 0) {
starY = 0;
} else if (starY >= height) {
starY = height - 1;
}
// 等待一段时间
Sleep(100);
}
return 0;
}
```