21xrx.com
2024-12-22 21:38:26 Sunday
登录
文章检索 我的文章 写文章
C++烟花代码简单易学
2023-07-10 07:46:17 深夜i     --     --
C++ 烟花代码 简单易学

C++是一门常见的编程语言,具有广泛的应用。其灵活的编码方式和强大的功能使其成为许多开发者的首选编程语言。而对于喜爱编写有趣程序的程序员来说,烟花代码是一个非常有趣的领域。使用C++可以很轻松地实现烟花效果,即使是新手也能轻松学习。

下面是使用C++编写的烟花代码示例:


#include <iostream>

#include <conio.h>

#include <math.h>

#include <windows.h>

using namespace std;

// 定义常量

const int SCREENX = 80;

const int SCREENY = 25;

// 定义结构体存储烟花的信息

struct Firework

  int x; // 烟花的x坐标

  int y; // 烟花的y坐标

  int type; // 烟花的类型

;

// 定义函数声明

void setCursor(int x, int y);

void printChar(int x, int y, char c);

void printCharWithColor(int x, int y, char c, int color);

void printString(int x, int y, string s, int color);

void printFirework(int x, int y, int type);

// 主函数

int main() {

  // 初始化屏幕

  system("cls");

  SetConsoleTitle("C++ Fireworks Code Example");

  HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

  CONSOLE_CURSOR_INFO cursorInfo;

  cursorInfo.dwSize = 1;

  cursorInfo.bVisible = false;

  SetConsoleCursorInfo(hConsole, &cursorInfo);

  // 初始化随机种子

  srand(time(NULL));

  // 循环启动烟花

  while (true) {

    // 定义烟花

    Firework firework;

    firework.x = rand() % SCREENX;

    firework.y = SCREENY - 1;

    firework.type = rand() % 3;

    // 按照烟花类型打印不同的烟花

    printFirework(firework.x, firework.y, firework.type);

    // 让烟花向上飞

    for (int i = firework.y - 1; i >= 0; i--) {

      // 按照烟花类型继续打印不同的烟花

      printFirework(firework.x, i, firework.type);

      // 让烟花爆炸

      if (i == firework.y / 2) {

        // 打印爆炸效果

        for (int j = 0; j < 25; j++) {

          int x = rand() % 10 - 5 + firework.x;

          int y = rand() % 10 - 5 + i;

          if (y >= 0) {

            printCharWithColor(x, y, '*', rand() % 14 + 1);

          }

        }

        // 暂停0.5秒

        Sleep(500);

        // 清除爆炸效果

        for (int j = 0; j < 25; j++) {

          int x = rand() % 10 - 5 + firework.x;

          int y = rand() % 10 - 5 + i;

          if (y >= 0) {

            printChar(x, y, ' ');

          }

        }

        // 退出循环

        break;

      }

      // 暂停0.05秒

      Sleep(50);

      // 清空烟花

      printFirework(firework.x, i + 1, 0);

    }

  }

  return 0;

}

// 设置控制台光标位置

void setCursor(int x, int y) {

  COORD pos = y ;

  SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);

}

// 打印一个字符

void printChar(int x, int y, char c) {

  setCursor(x, y);

  cout << c;

}

// 输出带颜色的字符

void printCharWithColor(int x, int y, char c, int color) {

  setCursor(x, y);

  HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

  SetConsoleTextAttribute(hConsole, color);

  cout << c;

  SetConsoleTextAttribute(hConsole, 7);

}

// 打印字符串

void printString(int x, int y, string s, int color) {

  setCursor(x, y);

  HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

  SetConsoleTextAttribute(hConsole, color);

  cout << s;

  SetConsoleTextAttribute(hConsole, 7);

}

// 输出烟花

void printFirework(int x, int y, int type) {

  switch (type) {

  case 0:

    printCharWithColor(x, y, '*', 14);

    break;

  case 1:

    printCharWithColor(x, y, '*', 12);

    break;

  case 2:

    printCharWithColor(x, y, '*', 10);

    break;

  }

}

以上烟花代码采用了结构体存储每一个烟花的信息,定义了一系列函数用于输出控制台字符。同时,根据烟花的类型不同,打印出带有不同颜色的星号。

总结来说,使用C++编写烟花代码是非常简单的,同时也是非常有趣的。即使是初学者也能轻松地理解和学习。通过这个示例代码,开发者可以了解如何发挥C++语言的优势,创建出与众不同的程序效果。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复