Advertisement
bildramer

Untitled

May 22nd, 2013
336
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.21 KB | None | 0 0
  1. //kill meeeeeee
  2. void medianpass() {
  3.     for(int j=0;j<YSIZE;j++){
  4.         for(int i=0;i<XSIZE;i++){
  5.             tmap[i+XSIZE*j]=map[i+XSIZE*j];
  6.             int n[12];
  7.             int c[12];
  8.             int nc=0;
  9.             int t;
  10.             t=map[((i+1)%XSIZE)+XSIZE*j];
  11.             for(int k=0;k<=nc;k++){if(k==nc){n[nc]=t;c[nc]=1;nc++;break;}if(n[k]==t){c[k]++;break;}}
  12.             t=map[((i+XSIZE-1)%XSIZE)+XSIZE*j];
  13.             for(int k=0;k<=nc;k++){if(k==nc){n[nc]=t;c[nc]=1;nc++;break;}if(n[k]==t){c[k]++;break;}}
  14.             t=map[i+XSIZE*((j+1)%YSIZE)];
  15.             for(int k=0;k<=nc;k++){if(k==nc){n[nc]=t;c[nc]=1;nc++;break;}if(n[k]==t){c[k]++;break;}}
  16.             t=map[i+XSIZE*((j+YSIZE-1)%YSIZE)];
  17.             for(int k=0;k<=nc;k++){if(k==nc){n[nc]=t;c[nc]=1;nc++;break;}if(n[k]==t){c[k]++;break;}}
  18.             t=map[((i+2)%XSIZE)+XSIZE*j];
  19.             for(int k=0;k<=nc;k++){if(k==nc){n[nc]=t;c[nc]=1;nc++;break;}if(n[k]==t){c[k]++;break;}}
  20.             t=map[((i+XSIZE-2)%XSIZE)+XSIZE*j];
  21.             for(int k=0;k<=nc;k++){if(k==nc){n[nc]=t;c[nc]=1;nc++;break;}if(n[k]==t){c[k]++;break;}}
  22.             t=map[i+XSIZE*((j+2)%YSIZE)];
  23.             for(int k=0;k<=nc;k++){if(k==nc){n[nc]=t;c[nc]=1;nc++;break;}if(n[k]==t){c[k]++;break;}}
  24.             t=map[i+XSIZE*((j+YSIZE-2)%YSIZE)];
  25.             for(int k=0;k<=nc;k++){if(k==nc){n[nc]=t;c[nc]=1;nc++;break;}if(n[k]==t){c[k]++;break;}}
  26.             t=map[((i+1)%XSIZE)+XSIZE*((j+1)%YSIZE)];
  27.             for(int k=0;k<=nc;k++){if(k==nc){n[nc]=t;c[nc]=1;nc++;break;}if(n[k]==t){c[k]++;break;}}
  28.             t=map[((i+XSIZE-1)%XSIZE)+XSIZE*((j+1)%YSIZE)];
  29.             for(int k=0;k<=nc;k++){if(k==nc){n[nc]=t;c[nc]=1;nc++;break;}if(n[k]==t){c[k]++;break;}}
  30.             t=map[((i+1)%XSIZE)+XSIZE*((j+YSIZE-1)%YSIZE)];
  31.             for(int k=0;k<=nc;k++){if(k==nc){n[nc]=t;c[nc]=1;nc++;break;}if(n[k]==t){c[k]++;break;}}
  32.             t=map[((i+XSIZE-1)%XSIZE)+XSIZE*((j+YSIZE-1)%YSIZE)];
  33.             for(int k=0;k<=nc;k++){if(k==nc){n[nc]=t;c[nc]=1;nc++;break;}if(n[k]==t){c[k]++;break;}}
  34.             int d[13];
  35.             for(int k=0;k<=12;k++)d[k]=0;
  36.             for(int l=0;l<12;l++){
  37.                 for(int k=0;k<=12;k++){
  38.                     if(c[l]==k)d[k]++;
  39.                 }
  40.             }
  41.             for(int l=12;l>0;l--){
  42.                 if(d[l]){
  43.                     int r=rnd.roll(d[l]);
  44.                     int s=0;
  45.                     for(int k=0;k<nc;k++){
  46.                         if(c[k]==l){
  47.                             if(s==r){
  48.                                 tmap[i+XSIZE*j]=n[k];
  49.                                 break;
  50.                             }else s++;
  51.                         }
  52.                     }
  53.                     break;
  54.                 }
  55.             }
  56.         }
  57.     }
  58.     int* tmp=tmap;
  59.     tmap=map;
  60.     map=tmp;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement