#include <graphics.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SCREEN_WIDTH 1280
#define SCREEN_HEIGHT 720
#define COLUMN_COUNT (SCREEN_WIDTH / 20)
#define CHAR_SIZE 20
typedef struct {
int y;
int speed;
int start_y;
} RainColumn;
RainColumn rain[COLUMN_COUNT];
void initRain() {
srand((unsigned int)time(NULL));
for (int i = 0; i < COLUMN_COUNT; i++) {
rain[i].y = rand() % SCREEN_HEIGHT;
rain[i].speed = rand() % 5 + 2;
rain[i].start_y = -rand() % SCREEN_HEIGHT;
}
}
void drawRain() {
setbkcolor(RGB(0, 0, 0));
solidrectangle(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
setbkmode(TRANSPARENT);
for (int i = 0; i < COLUMN_COUNT; i++) {
int x = i * CHAR_SIZE;
char ch = (rand() % 2) ? '1' : '0';
if (rain[i].y % (CHAR_SIZE * 5) == 0) {
setcolor(RGB(0, 255, 0));
} else {
setcolor(RGB(0, rand() % 150 + 50, 0));
}
outtextxy(x, rain[i].y, ch);
rain[i].y += rain[i].speed;
if (rain[i].y > SCREEN_HEIGHT) {
rain[i].y = rain[i].start_y;
rain[i].speed = rand() % 5 + 2;
}
}
}
int main() {
initgraph(SCREEN_WIDTH, SCREEN_HEIGHT);
SetWindowText(GetHWnd(), "xxx");
initRain();
while (1) {
Sleep(33);
drawRain();
if (GetAsyncKeyState(VK_ESCAPE) & 0x8000) {
break;
}
}
closegraph();
return 0;
}
ENTER COMMAND CODE
INVALID CODE