#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");
}
}