#include <stdio.h>
 
#define ZONEBASE 15000
#define INITROOM 0
#define MAXROOM 90
#define W 25
#define X 6  /* Number of exit direction */
#define RND(X) (rand() % (X))
 
static int rev[]={2,3,0,1,5,4};
static int nbr[]={-W,1,W,-1};
 
int roomctr=0;
int exits[MAXROOM][X];
int mobctr=0;

main()
{
   int i,j,k,d,n,x,y;
 
   freopen("dr.wld","w",stdout);
   srand(time(0));
   for(i=0;i<MAXROOM;++i)
      for(j=0;j<X;++j)
         exits[i][j]=(-1);
   makeexits();
   printall();
}
makeexits()
{
   int i,n;

   for(i=1;i<MAXROOM;++i){
      do n=RND(4); while(exits[i][n] >= 0);
      exits[i][n]=i+1;
      exits[i+1][rev[n]]=i;
   }
   for(i=1;i<MAXROOM;++i){
      do n=RND(4); while(exits[i][n] >= 0);
      exits[i][n]=i;
   }
}
printall()
{
   int i,j,k,n,x,y;
 
   for(n=0;n<MAXROOM;++n){
         for(i=k=0;i<X;++i)
            if(exits[n][i]!=(-1))
               ++k;
         printf("#%d\n",ZONEBASE+n);
         printf("A Long Dark Tunnel~\n");
         printf(" %s\n~\n","You are in a long dark tunnel.");
         printf("%d %d 5\n",ZONEBASE/100,4105);
         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");
   }
}