Слияние кода завершено, страница обновится автоматически
#include<stdio.h>
#include<windows.h>
#include<graphics.h>
#define WIDTH 960
#define HEIGTH 640
#define STR_SIZE 20
#define STR_NUM 128
#define STR_WIDTH 15
struct Rain {
int x;
int y;
int speed;
char str[STR_SIZE];
} rain[STR_NUM];
char CreateChar() {
char temp = 0;
int flag = rand() % 3;
if(flag == 0) {
temp = rand() % 26 + 'a';
// temp = 'a';
} else if(flag == 1) {
temp = rand() % 26 + 'A';
// temp ='A';
} else {
temp = rand() % 10+'0';
// temp = '0';
}
return temp;
}
void GameInit(){
for (int i= 0; i < STR_NUM; i++) {
rain[i].x = i * STR_WIDTH;
rain[i].y = rand() % HEIGTH;
rain[i].speed = rand() % 5 + 5;
}
for (int i = 0; i < STR_NUM; i++) {
for (int j = 0; j < STR_SIZE; j++) {
rain[i].str[j] = CreateChar();
}
}
}
void GameDraw(){
cleardevice();
for (int i = 0; i < STR_NUM; i++) {
for (int j = 0; j < STR_SIZE; j++) {
outtextxy(rain[i].x, rain[i].y - STR_WIDTH * j, rain[i].str[j]);
SetTextColor(RGB(0, 255 - 13 * j, 0));
}
}
}
void GamePlay(){
for (int i = 0; i < STR_NUM; i++) {
rain[i].y += rain[i].speed;
if (rain[i].y - STR_SIZE * STR_WIDTH > HEIGTH) {
rain[i] = 0;
}
}
}
void ChangeCh(){
for(int i=0;i<STR_NUM;i++){
rain[rand()%STR_NUM].str[rand()%STR_SIZE]=CraeteChar();
}
}
int main(){
initgraph(WIDTH,HEIGTH);
srand(GetTickCount());
GameInit();
DWORD t1, t2;
t1 = t2 = GetTickCount();
while (1) {
BeginBatchDraw();
GameDraw();
ChangeCh();
if (t2 - t1 > 20){
GamePlay();
t1 = t2;
}
t2 = GetTickCount();
EndBatchDraw();
// Sleep(20);
}
getchar();
closegraph();
return 0;
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )