@*Intro. A simple program to make ``random'' squaregraphs, by sort of a ``crocheting'' technique. (Hacked in haste.) @d maxn 1000 @c #include #include #include "gb_flip.h" int a[2*maxn+4],d[2*maxn+8]; int move[8*maxn]; int count[maxn]; int seed; int steps; main (int argc, char*argv[]) { register int j,k,m,t,w; @; a[0]=0,a[1]=1,a[2]=0,a[3]=1; d[0]=d[1]=d[2]=d[3]=2; w=4; for (j=0;j; k=gb_unif_rand(m); @; @; } @; } @ @= if (argc!=3 || sscanf(argv[1],"%d",&steps)!=1 || sscanf(argv[2],"%d",&seed)!=1) { fprintf(stderr,"Usage: %s n seed\n",argv[0]); exit(-1); } if (steps>=maxn) { fprintf(stderr,"Sorry, n should be less than %d!\n",maxn); exit(-2); } gb_init_rand(seed); @ @= d[w]=d[0], d[w+1]=d[1], a[w]=a[0], a[w+1]=a[1]; for (m=0;m3) move[m++]=maxn+k; for (k=0;k3 && d[k+2]>3) move[m++]=maxn+maxn+k; @ @= if (move[k]=k+2;m--) d[m+2]=d[m],a[m+2]=a[m]; d[k+3]=d[k+1]+1, d[k+2]=d[k+1]=2, d[k]=d[k]+1; a[k+3]=a[k+1], a[k+2]=j+2, a[k+1]=a[k], a[k]=j+2; if (k+3>=w) for (t=0;t+w<=k+3;t++) d[t]=d[w+t],a[t]=a[w+t]; }@+else if (move[k]=w) for (t=0;t+w<=k+1;t++) d[t]=d[w+t],a[t]=a[w+t]; }@+else { k=move[k]-maxn-maxn; for (t=0;t= for (k=0;k= for (k=0;k