我学c不久,这是帮一个学校编的dos下屏保的东东,密码部分我没放上来
环境 ---- borland c++ 3.1 for dos
前提部分 -------- BC路径\bgi> objbgi egavga BC路径\lib> tlib graphics+..\egavga.obj
BC环境下加入链接 graphicslib
代码:
#include <dos.h> #include <time.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <graphics.h>
void help(void); void lscr(void);
void main(int argc, char *argv[]) { if(argc == 2 && (!strcmp(argv[1], "/h") || !strcmp(argv[1], "/?"))) { help(); exit(1); } lscr(); }
void help(void) { printf("\nWriten by newbie at 2002-11-26\n"); }
void lscr(void) { int gdriver = DETECT, gmode, d1 = 0, d2 = 50, c1, c2, i, j, ranoff = 4; int x[5], y[5], ox[5][5], oy[5][5], xoff[5], yoff[5], xmax, ymax; int xx[5], yy[5], oxx[5][5], oyy[5][5], xxoff[5], yyoff[5];
registerbgidriver(EGAVGA_driver); initgraph(&gdriver, &gmode, "");
xmax = getmaxx(); ymax = getmaxy();
for(i = 0; i < 5; i++) { for(j = 0; j < 5; j++) { ox[i][j] = 0; oy[i][j] = 0; oxx[i][j] = 0; oyy[i][j] = 0; } }
randomize();
for(i = 0; i < 5; i++) { x[i] = ox[0][i] = random(xmax); y[i] = oy[0][i] = random(ymax); xoff[i] = 4 + random(ranoff); yoff[i] = 3 + random(ranoff); xx[i] = oxx[0][i] = random(xmax); yy[i] = oyy[0][i] = random(ymax); xxoff[i] = 4 + random(ranoff); yyoff[i] = 3 + random(ranoff); }
c1 = 1 + random(15); c2 = 1 + random(15); while(!kbhit()) { for(i = 0; i < 5; i++) { if(x[i] <= 0) { xoff[i] = 3 + random(ranoff); } if(y[i] <= 0) { yoff[i] = 3 + random(ranoff); } if(x[i] >= xmax) { xoff[i] = 3 + random(ranoff); xoff[i] = -xoff[i]; } if(y[i] >= ymax) { yoff[i] = 3 + random(ranoff); yoff[i] = -yoff[i]; } if(xx[i] <= 0) { xxoff[i] = 3 + random(ranoff); } if(yy[i] <= 0) { yyoff[i] = 3 + random(ranoff); } if(xx[i] >= xmax) { xxoff[i] = 3 + random(ranoff); xxoff[i] = -xxoff[i]; } if(yy[i] >= ymax) { yyoff[i] = 3 + random(ranoff); yyoff[i] = -yyoff[i]; } }
for(i = 0; i < 5; i++) { x[i] = x[i] + xoff[i]; y[i] = y[i] + yoff[i]; xx[i] = xx[i] + xxoff[i]; yy[i] = yy[i] + yyoff[i]; }
if(d1 > 100) { d1 = 0; c1 = 1 + random(15); while(c1 == c2) c1 = 1 + random(15); } if(d2 > 100) { d2 = 0; c2 = 1 + random(15); while(c1 == c2) c2 = 1 + random(15);
}
setcolor(c1); line(x[0], y[0], x[1], y[1]); line(x[1], y[1], x[2], y[2]); line(x[2], y[2], x[3], y[3]); line(x[3], y[3], x[4], y[4]); line(x[4], y[4], x[0], y[0]);
setcolor(c2); line(xx[0], yy[0], xx[1], yy[1]); line(xx[1], yy[1], xx[2], yy[2]); line(xx[2], yy[2], xx[3], yy[3]); line(xx[3], yy[3], xx[4], yy[4]); line(xx[4], yy[4], xx[0], yy[0]);
setcolor(0); line(ox[0][4], oy[0][4], ox[1][4], oy[1][4]); line(ox[1][4], oy[1][4], ox[2][4], oy[2][4]); line(ox[2][4], oy[2][4], ox[3][4], oy[3][4]); line(ox[3][4], oy[3][4], ox[4][4], oy[4][4]); line(ox[4][4], oy[4][4], ox[0][4], oy[0][4]);
line(oxx[0][4], oyy[0][4], oxx[1][4], oyy[1][4]); line(oxx[1][4], oyy[1][4], oxx[2][4], oyy[2][4]); line(oxx[2][4], oyy[2][4], oxx[3][4], oyy[3][4]); line(oxx[3][4], oyy[3][4], oxx[4][4], oyy[4][4]); line(oxx[4][4], oyy[4][4], oxx[0][4], oyy[0][4]);
for(i = 0; i < 5; i++) for(j = 4; j > 0; j--) { ox[i][j] = ox[i][j - 1]; oy[i][j] = oy[i][j - 1]; oxx[i][j] = oxx[i][j - 1]; oyy[i][j] = oyy[i][j - 1]; }
for(i = 0; i < 5; i++) { ox[i][0] = x[i]; oy[i][0] = y[i]; oxx[i][0] = xx[i]; oyy[i][0] = yy[i]; }
d1++; d2++; delay(50); } closegraph(); }
以上代码均测试通过
[此贴被 newbie(newbie) 在 12月2日23时15分 编辑过]
|