c++代码雨

cpp
#include <iostream> #include <cstdlib> #include <ctime> #include <windows.h> // 仅在 Windows 平台上使用 const int SCREEN_WIDTH = 80; const int SCREEN_HEIGHT = 25; const int MAX_CODE_LENGTH = 10; const int MAX_CODE_SPEED = 5; class CodeRain { private: int x; int y; char symbol; int speed; public: CodeRain() { x = rand() % SCREEN_WIDTH; y = -(rand() % SCREEN_HEIGHT); symbol = (char)(33 + rand() % 93); // 生成可见字符 speed = 1 + rand() % MAX_CODE_SPEED; } void fall() { y += speed; if (y >= SCREEN_HEIGHT) y = 0; } void draw() { COORD pos = { x, y }; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); std::cout << symbol; } }; int main() { srand(time(0)); // 用当前时间初始化随机数生成器 // 隐藏光标 HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO cursorInfo; GetConsoleCursorInfo(out, &cursorInfo); cursorInfo.bVisible = false; SetConsoleCursorInfo(out, &cursorInfo); // 设置控制台大小 SMALL_RECT windowSize = { 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 }; SetConsoleWindowInfo(out, TRUE, &windowSize); CodeRain codeRaindrops[SCREEN_WIDTH]; while (true) { for (int i = 0; i < SCREEN_WIDTH; ++i) { codeRaindrops[i].fall(); codeRaindrops[i].draw(); } Sleep(50); // 控制代码雨速度 } return 0; }

这段代码模拟了在控制台上下落的代码雨效果。它使用了 Windows 平台特定的函数来控制控制台输出和光标的行为。如果你在其他平台上运行代码,可能需要做相应的调整。

这个 C++ 代码实现了一个简单的代码雨效果,

头文件包含

#include <iostream>:用于标准输入输出流。#include <cstdlib>:包含了通用的 C 标准库函数,如 rand()srand()#include <ctime>:包含了处理时间和日期的函数。#include <windows.h>:在 Windows 平台上使用的头文件,包含了控制台相关的函数。

常量定义

SCREEN_WIDTHSCREEN_HEIGHT:控制台的宽度和高度。MAX_CODE_LENGTHMAX_CODE_SPEED:分别控制代码雨的最大长度和速度。

CodeRain 类

包含了代码雨的属性和方法,如位置 (x, y)、字符符号、下落速度等。构造函数初始化代码雨的属性,随机生成位置、字符和速度。fall() 方法使代码雨下落,更新 y 坐标,并在达到屏幕底部时将 y 坐标重置为 0。draw() 方法绘制代码雨,将字符符号输出到控制台的指定位置。

main() 函数

初始化随机数生成器。隐藏控制台光标,以避免干扰代码雨效果。设置控制台的大小。创建一个包含多个 CodeRain 对象的数组,每个对象代表一列代码雨。在主循环中,让每个代码雨对象下落并绘制到控制台上,通过 Sleep() 控制代码雨的速度。