c++烟花满屏代码
时间: 2025-05-25 19:22:22 浏览: 7
以下是基于C++实现满屏烟花效果的代码示例:
### 满屏烟花效果代码
此代码利用控制台输出来模拟烟花的效果,通过随机生成烟花的位置和颜色变化,达到视觉上的动态感。
```cpp
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <thread>
#include <chrono>
using namespace std;
const int WIDTH = 80;
const int HEIGHT = 25;
void clearScreen() {
cout << "\033[2J\033[1;1H"; // 清除屏幕命令(适用于Linux/Mac)
}
void drawFireworks(vector<pair<int, int>> fireworks) {
vector<string> screen(HEIGHT, string(WIDTH, ' '));
for (auto &[x, y] : fireworks) {
if (y >= 0 && y < HEIGHT && x >= 0 && x < WIDTH) {
screen[y][x] = '*';
}
}
for (int i = 0; i < HEIGHT; ++i) {
cout << screen[i] << endl;
}
}
int main() {
srand(time(nullptr));
while (true) {
clearScreen();
vector<pair<int, int>> fireworks;
for (int i = 0; i < 10; ++i) { // 创建多个烟花
int x = rand() % WIDTH;
int y = rand() % HEIGHT;
fireworks.emplace_back(x, y);
}
drawFireworks(fireworks);
this_thread::sleep_for(chrono::milliseconds(100)); // 延迟时间调整动画速度
}
return 0;
}
```
#### 功能说明
1. **清屏函数**:`clearScreen()` 使用 ANSI 转义码清除终端并重置光标位置[^4]。
2. **烟花生成逻辑**:每次循环中,在屏幕上随机生成若干个烟花坐标,并将其标记为 `*` 符号。
3. **动态显示**:通过短暂停顿 (`this_thread::sleep_for`) 和重复刷新屏幕的方式,形成连续的动态效果。
4. **可扩展性**:可以进一步增加烟花的颜色、形状以及运动轨迹的变化,使效果更加逼真。
注意:该代码适合运行于支持 ANSI 控制符的环境(如 Linux 或 Mac 的终端),Windows 用户可能需要额外配置或修改清屏方法。
---
阅读全文
相关推荐















