新年快乐带烟花的c语言
时间: 2024-12-17 18:06:48 浏览: 20
以下是一个使用C语言在控制台显示"新年快乐"并模拟烟花效果的简单程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
#define WIDTH 80
#define HEIGHT 24
void clearScreen() {
printf("\033[2J");
printf("\033[%d;%dH", 0, 0);
}
void drawFirework(int x, int y) {
int i, j;
for (i = -2; i <= 2; i++) {
for (j = -2; j <= 2; j++) {
if (i*i + j*j <= 4) {
if (x+i >= 0 && x+i < WIDTH && y+j >= 0 && y+j < HEIGHT) {
printf("\033[%d;%dH*\033[0m", y+j, x+i);
}
}
}
}
}
int main() {
int i, j;
int x, y;
srand(time(NULL));
clearScreen();
printf("\033[15;30H新年快乐!\033[0m");
sleep(2);
for (i = 0; i < 10; i++) {
x = rand() % WIDTH;
y = rand() % (HEIGHT / 2);
drawFirework(x, y);
usleep(500000);
clearScreen();
printf("\033[15;30H新年快乐!\033[0m");
}
printf("\n");
return 0;
}
```
这个程序的工作原理如下:
1. 使用ANSI转义序列清除屏幕并定位光标。
2. 在屏幕中央打印"新年快乐!"。
3. 使用随机位置模拟10次烟花爆炸。
4. 每个烟花用一个简单的星形图案表示。
5. 每次爆炸后,清除屏幕并重新打印"新年快乐!"。
要运行这个程序,你需要在支持ANSI转义序列的终端中执行。编译时使用:
```
gcc -o new_year new_year.c
```
然后运行:
```
./new_year
```
阅读全文