[ create a new paste ] login | about

Link: http://codepad.org/v5IiMN8I    [ raw code | output | fork ]

C, pasted on Jun 19:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define SizeX 51
#define SizeY 51

int map[SizeX][SizeY],i=0,X[SizeX*SizeY],Y[SizeX*SizeY],c,a=0;

int dig(int x,int y){
	int dx,dy,r;
	c=0;
	r=rand();
	printf("%d\n",r);
	while(c<4){
		switch ((r + 4 + c) % 4 ){
			case 0:
				dx = 0;
				dy = -1;
				break;
			case 1:
				dx = -1;
				dy = 0;
				break;
			case 2:
				dx = 0;
				dy = 1;
				break;
			case 3:
				dx = 1;
				dy = 0;
				break;
		}

/*		if((r+4+c)%4==0){
			dx=0;
			dy=-1;
		}else if((r+4+c)%4==1){
			dx=-1;
			dy=0;
		}else if((r+4+c)%4==2){
			dx=0;
			dy=1;
		}else if((r+4+c)%4==3){
			dx=1;
			dy=0;
		}*/
		
		if(x+dx*2<=0 || y+dy*2<=0 || x+dx*2>=SizeX-1 || y+dy*2>=SizeY-1){
			c++;
		}else if(map[x+dx*2][y+dy*2]==0){
			c++;
		}else if(map[x+dx*2][y+dy*2]==1){
			map[x+dx][y+dy]=0;
			map[x+dx*2][y+dy*2]=0;
			x=x+dx*2;
			y=y+dy*2;
			c=0;
			r=rand();
		}
	}
	return 0;
}

int main(){
	int x,y,i,a;
	
	for(x=0;x<=SizeX-1;x++){
		for(y=0;y<=SizeY-1;y++){
			map[x][y]=1;
		}
	}
	
	map[1][1]=0;
	
	while(1){
		i=0;
		x=1;
		y=1;
		while(y<SizeY-1){
                        x=1;                  /*これ*/
			while(x<SizeX-1){
				if (map[x][y]==0){
					if(x-2>=0 && map[x-2][y]==1){
						X[i]=x;
						Y[i]=y;
						++i;
					}else if(y-2>=0 && map[x][y-2]==1){
						X[i]=x;
						Y[i]=y;
						i++;
					}else if((y==SizeY-2) && (x==SizeX-2)){
						break;
					}else if(x+2<SizeX && map[x+2][y]==1){
						X[i]=x;
						Y[i]=y;
						++i;
					}else if(y+2<SizeY && map[x][y+2]==1){
						X[i]=x;
						Y[i]=y;
						++i;
					}
				}
				x=x+2;
			}
			y=y+2;
		}
		
		if(i==0){
			break;
		}else{
			srand((unsigned) time(NULL));
			a=rand()%i;
			x=X[a];
			y=Y[a];
			dig(x,y);
		}
	}
	
	map[1][0]=2;
	map[SizeX-2][SizeY-1]=2;
	
	for(y = 0; y < SizeY ; y++ ){
		for(x = 0; x < SizeX ; x++ ){
			if( map[x][y] == 0){
				printf("  "); 
			}else if( map[x][y] == 1){
				printf("EE") ;
			}else if( map[x][y] == 2){
				printf("::") ;
			}
		}
		printf("\n");
	}
	return 0;
}


Output:
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
140990713
EE::EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EE                          EE      EE                                  EE  EE                      EE
EE  EEEEEEEEEE  EEEEEEEEEE  EE  EE  EE  EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE  EE  EE  EEEEEEEEEEEEEEEEEE  EE
EE          EE  EE          EE  EE  EE          EE                  EE  EE      EE              EE  EE
EEEEEEEEEE  EE  EEEEEEEEEEEEEE  EE  EEEEEEEEEEEEEE  EEEEEEEEEE  EE  EE  EEEEEEEEEE  EEEEEEEEEEEEEE  EE
EE          EE                  EE              EE      EE      EE      EE                          EE
EE  EE  EEEEEE  EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE  EEEEEE  EE  EEEEEEEEEEEEEE  EE  EE  EEEEEEEEEEEEEEEEEE
EE  EE      EE          EE                  EE          EE          EE      EE  EE  EE      EE      EE
EE  EEEEEEEEEEEEEE  EEEEEE  EEEEEEEEEEEEEE  EEEEEEEEEEEEEEEEEEEEEE  EEEEEEEEEEEEEE  EE  EE  EE  EE  EE
EE              EE  EE      EE          EE  EE      EE          EE                  EE  EE  EE  EE  EE
EE  EEEEEEEEEE  EE  EE  EEEEEEEEEEEEEE  EE  EE  EE  EE  EEEEEE  EEEEEEEEEEEEEEEEEEEEEE  EE  EE  EE  EE
EE  EE          EE  EE                  EE  EE  EE  EE  EE  EE          EE              EE  EE  EE  EE
EE  EE  EEEEEEEEEE  EEEEEEEEEEEEEEEEEEEEEE  EE  EEEEEE  EE  EEEEEE  EE  EE  EEEEEEEEEEEEEE  EE  EE  EE
EE  EE  EE          EE                      EE      EE  EE          EE      EE      EE      EE  EE  EE
EE  EE  EEEEEE  EE  EE  EE  EEEEEEEEEEEEEEEEEEEEEE  EE  EE  EEEEEEEEEEEEEE  EE  EE  EE  EE  EEEEEE  EE
EE  EE  EE      EE  EE  EE          EE          EE  EE  EE              EE      EE  EE  EE          EE
EE  EE  EE  EEEEEE  EE  EE  EEEEEEEEEE  EEEEEE  EE  EE  EEEEEE  EEEEEEEEEEEEEEEEEE  EE  EEEEEEEEEEEEEE
EE  EE  EE  EE      EE  EE  EE          EE      EE  EE      EE      EE      EE      EE  EE          EE
EE  EE  EE  EE  EEEEEE  EE  EE  EEEEEE  EE  EEEEEE  EEEEEE  EEEEEE  EE  EE  EE  EEEEEEEEEE  EEEEEE  EE
EE  EE  EE  EE  EE  EE  EE      EE      EE                  EE      EE  EE  EE      EE          EE  EE
EE  EE  EE  EE  EE  EE  EEEEEEEEEEEEEEEEEEEEEE  EEEEEEEEEEEEEEEEEEEEEE  EE  EEEEEEEEEE  EEEEEE  EE  EE
EE  EE  EE  EE      EE      EE      EE          EE                  EE  EE  EE          EE      EE  EE
EE  EE  EE  EEEEEEEEEEEEEE  EE  EE  EE  EEEEEEEEEE  EEEEEEEEEEEEEE  EE  EE  EE  EEEEEEEEEE  EEEEEEEEEE
EE  EE  EE                  EE  EE  EE          EE      EE              EE      EE      EE          EE
EE  EE  EEEEEEEEEEEEEEEEEEEEEE  EE  EE  EEEEEEEEEEEEEE  EE  EEEEEEEEEEEEEEEEEEEEEE  EEEEEEEEEEEEEE  EE
EE  EE      EE              EE  EE  EE  EE      EE      EE  EE      EE      EE  EE  EE              EE
EE  EEEEEE  EE  EEEEEEEEEE  EE  EE  EE  EE  EE  EE  EEEEEE  EE  EE  EE  EE  EE  EE  EE  EEEEEEEEEE  EE
EE      EE  EE  EE      EE      EE  EE  EE  EE  EE      EE      EE  EE  EE  EE  EE      EE          EE
EEEEEE  EE  EE  EE  EE  EEEEEEEEEE  EEEEEE  EE  EEEEEE  EEEEEEEEEEEEEE  EE  EE  EEEEEEEEEEEEEE  EEEEEE
EE  EE  EE      EE  EE  EE          EE      EE          EE              EE  EE              EE      EE
EE  EE  EEEEEEEEEE  EE  EE  EEEEEE  EE  EEEEEEEEEEEEEEEEEE  EEEEEEEEEEEEEE  EEEEEEEEEEEEEE  EEEEEEEEEE
EE  EE          EE  EE  EE  EE      EE  EE                      EE      EE      EE      EE          EE
EE  EEEEEEEEEE  EE  EE  EE  EEEEEEEEEE  EE  EE  EE  EEEEEEEEEE  EE  EE  EEEEEE  EE  EEEEEEEEEEEEEE  EE
EE          EE      EE  EE          EE      EE  EE          EE      EE      EE      EE          EE  EE
EE  EEEEEE  EEEEEEEEEE  EEEEEEEEEE  EEEEEE  EEEEEEEEEEEEEE  EEEEEEEEEEEEEE  EE  EEEEEE  EEEEEE  EE  EE
EE  EE  EE              EE          EE      EE      EE  EE      EE      EE  EE  EE          EE  EE  EE
EE  EE  EEEEEEEEEE  EEEEEE  EEEEEEEEEEEEEE  EE  EE  EE  EEEEEE  EE  EE  EE  EE  EE  EE  EE  EE  EE  EE
EE  EE          EE      EE          EE      EE  EE  EE      EE      EE  EE  EE      EE  EE  EE      EE
EE  EEEEEEEEEE  EEEEEE  EEEEEEEEEE  EE  EEEEEEEEEE  EE  EE  EEEEEEEEEE  EE  EEEEEEEEEEEEEE  EEEEEEEEEE
EE          EE          EE      EE      EE      EE      EE              EE              EE          EE
EEEEEEEEEE  EEEEEEEEEEEEEE  EE  EEEEEEEEEE  EE  EEEEEEEEEEEEEEEEEEEEEEEEEE  EEEEEEEEEE  EEEEEEEEEE  EE
EE          EE          EE  EE  EE          EE  EE                          EE          EE          EE
EE  EE  EE  EE  EEEEEE  EE  EE  EE  EEEEEE  EE  EEEEEE  EEEEEEEEEEEEEE  EEEEEEEEEEEEEEEEEE  EEEEEEEEEE
EE  EE  EE          EE  EE  EE      EE      EE      EE  EE          EE          EE  EE      EE      EE
EE  EEEEEEEEEEEEEE  EE  EE  EEEEEEEEEE  EEEEEEEEEE  EE  EEEEEEEEEE  EEEEEEEEEE  EE  EE  EEEEEE  EE  EE
EE  EE              EE  EE          EE      EE      EE          EE  EE          EE      EE      EE  EE
EE  EE  EEEEEEEEEEEEEEEEEEEEEEEEEE  EEEEEEEEEE  EEEEEEEEEEEEEE  EE  EE  EEEEEEEEEEEEEEEEEEEEEEEEEE  EE
EE  EE                          EE          EE          EE  EE      EE                              EE
EE  EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE  EEEEEEEEEE  EE  EEEEEEEEEE  EEEEEEEEEE  EEEEEEEEEE  EE  EE
EE                                          EE          EE              EE          EE          EE  EE
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE::EE


Create a new paste based on this one


Comments: