21xrx.com
2025-04-07 12:57:11 Monday
文章检索 我的文章 写文章
DevC++生日烟花代码分享
2023-06-28 13:20:24 深夜i     21     0
DevC++ 生日 烟花 代码分享 编程

DevC++是一款非常流行的集成开发环境,它支持多种编程语言,比如C++、C、Fortran等。近日,DevC++迎来了它的生日,为了庆祝这个特殊的日子,我们分享一段生日烟花的代码。

这段代码的作用是在控制台窗口中绘制一个迷你版的烟花,并且让它在随机的位置不断地爆炸,同时伴随着美丽的烟花雨。以下是完整的代码:

#include <iostream>
#include <Windows.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
void setColor(int color) {
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}
void gotoxy(int x, int y) {
  COORD xy;
  xy.X = x;
  xy.Y = y;
  SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), xy);
}
void drawStar(int x, int y, int color) {
  setColor(color);
  gotoxy(x, y);
  cout << "*";
}
void drawFirework(int x, int y) {
  for (int i = 0; i < 40; i++) {
    int color = rand() % 15 + 1;
    drawStar(x + rand() % 10 - 5, y + rand() % 10 - 5, color);
  }
}
int main() {
  srand(time(NULL));
  int height = 30, width = 80;
  while (true) {
    system("cls");
    drawFirework(rand() % width, rand() % height);
    for (int i = 0; i < width * height / 100; i++) {
      int x = rand() % width, y = rand() % height;
      drawStar(x, y, rand() % 15 + 1);
    }
    Sleep(50);
  }
  return 0;
}

这段代码首先定义了一些常见的控制台绘图函数,比如setColor、gotoxy、drawStar和drawFirework等。其中,setColor函数用于设置控制台输出文字的颜色;gotoxy函数用于将输出的光标移动到指定位置;drawStar函数用于在指定位置绘制星星;drawFirework函数用于让一个点周围出现许多不同颜色的星星从而呈现出烟花的形状。

在主函数中,我们使用while循环来不断绘制烟花并让它在屏幕上随机移动。代码使用了C++的标准库函数srand和rand来生成随机数,而Sleep函数则用于让程序暂停50毫秒,以便观察烟花效果。值得一提的是,我们还使用了system("cls")来清空屏幕,以便让我们能够看到更多的烟花爆炸效果。

通过以上的代码示例,相信读者们能够更好地理解如何使用DevC++编写控制台程序。如果你喜欢这个生日烟花程序,可以在自己的电脑上练习编写,创造更多美妙的效果。

  
  

评论区

请求出错了