#include <stdio.h>
#define ZONEBASE 10000
#define INITROOM 0
#define S 8
#define MAXROOM (S*S*S)
#define X 6 /* Number of exit direction */
#define RNDDIR (rand() % 6)
static int rev[]={2,3,0,1,5,4};
static int nbr[]={ S, 1, -S, -1, S*S, -S*S};
int roomctr;
int exits[MAXROOM][X];
main()
{
int i,j,k,d,n,x,y;
srand(time(0));
for(i=0;i<MAXROOM;++i)
for(j=0;j<6;++j)
exits[i][j]=(-1);
for(i=0;i<MAXROOM;++i){
for(j=0;j<6;j++){
k=i+nbr[j];
if(((i%8)==7)&&(j==1)) continue;
if(((i%8)==0)&&(j==3)) continue;
if(((i%64) >= 56)&&(j==0)) continue;
if(((i%64) < 8)&&(j==2)) continue;
if((i >= 448)&&(j==4)) continue;
if((i < 64)&&(j==5)) continue;
if ((k < 0) || (k >= MAXROOM)) continue;
exits[i][j]=k;
}
}
printall();
}
printall()
{
int i,j,n,indoors,x,y;
char name[4];
name[3]=0;
for(n=0;n<MAXROOM;++n){
printf("#%d\n",ZONEBASE+n);
printf("The Cube~\n");
printf("This is Cell %03o.",n);
printf("\n~\n");
printf("%d 12298 4\n",ZONEBASE/100);
for(j=0;j<X;++j)
if(exits[n][j] >= 0)
printf("D%d\n~\n~\n0 -1 %d\n",j,ZONEBASE+exits[n][j]);
printf("S\n");
}
}