Board logo

标题: [讨论] 搞一个程序给大家玩一玩 [打印本页]

作者: not4weak    时间: 2010-9-9 20:34     标题: 搞一个程序给大家玩一玩

看看能不能编译通过先.
  1. # include <stdlib.h>
  2. # include <graphics.h>
  3. # include <conio.h>
  4. # include <alloc.h>

  5. # define NO 999     
  6. # define W 64      
  7. # define MAXX 639   
  8. # define MAXY 479   
  9. # define MAXZ 7   

  10. int dot[MAXX+1][3];   

  11. char *hf[]={
  12.      "11111111111111111111111111111111",
  13.      "11111111111111111111111111111111",
  14.      "11111111111111111111111111111111",
  15.      "11117777777711111177777777711111",
  16.      "11117777777771111177111111771111",
  17.      "11111111117771111177111111771111",
  18.      "11111111117771111177111111771111",
  19.      "11117777777771111177111111771111",
  20.      "11111111117771111177111111771111",
  21.      "11111111117771111177111111771111",
  22.      "11117777777771111177111111771111",
  23.      "11117777777711111177777777711111",
  24.      "11111111111111111111111111111111",
  25.      "11111111111111111111111111111111",
  26.      "11112233445566776655443322111111",
  27.      "11112233445566776655443322111111",
  28.      "11111111111111111111111111111111",
  29.      "11111111111111111111111111111111",
  30.      "11112223344456665443322211111111",
  31.      "11112223344456665443322211111111",
  32.      "10101010101010101010101010101010",
  33.      "01010101010101010101010101010101",
  34.      "10101010101010101010101010101010",
  35.      "01010101010101010101010101010101"};

  36. void main()
  37. {
  38.   int lx,rx,tx;
  39.   int gd=0,gm;
  40.   int i;
  41.   int x,y,h;
  42.   int *p;

  43.   initgraph(&gd,&gm,"");        
  44.   for(i=1;i<=8000;i++){         
  45.     setcolor(i % 8+7);
  46.     x=random(MAXX); y=random(MAXY);
  47.     line(x,y,x+random(7),y+random(7));
  48.   }
  49.   p=(int*)malloc(imagesize(0,0,19,1));  

  50. for(y=0;y<= MAXY;y+=20){              
  51.     for(x=0;x<=MAXX;x++){            
  52.       dot[x][1]=NO;
  53.       dot[x][2]=NO;
  54.       if (x+W <= MAXX) dot[x][1]= x + W;
  55.       if (x-W >= 0)    dot[x][2]= x - W;
  56.     }
  57.   for(h=1;h<=MAXZ;h++){                 
  58.     for(x=0;x<=MAXX;x++){
  59.       lx = x - W /2 + h;              
  60.       rx = x + W / 2 - h;
  61.       if (hf[y/20][x/20]-48==h && lx >= 0 && rx <= MAXX){
  62.         if (dot[lx][1] !=NO) dot[dot[lx][1]][2]= NO;
  63.         dot[lx][1] = rx;
  64.         if(dot[rx][2] != NO) dot[dot[rx][2]][1] = NO;
  65.         dot[rx][2] = lx;
  66.       }
  67.     }
  68.   }

  69.   for(x=0;x<=MAXX;x++){
  70.     if(dot[x][2]==NO){
  71.       dot[x][0] = x;
  72.       tx = x;
  73.       while(dot[tx][1]!=NO){
  74.         tx = dot[tx][1];
  75.         dot[tx][0] = x;
  76.       }
  77.     }
  78.     if(dot[x][0] != x){
  79.       getimage(dot[x][0],y,dot[x][0],y+19,p);
  80.       putimage(x,y,p,0);
  81.     }
  82.   }
  83. }
  84. getch();            
  85. closegraph();      
  86. }
复制代码

作者: dashxia    时间: 2010-9-10 07:51

What' s this?




欢迎光临 华人论坛 (http://huarenv5.com/forum/) Powered by Discuz! 7.2