#include <stdio.h> #define RND(X) (random() % (X)) #define NJOB 11 #define NLPJ 3 struct towermob { char *key; char *job; char *adj[NLPJ]; } joblist[]={ {"boy", "office boy", {" part-time", "", " old"}}, {0, "bookkeeper", {" assistant", "", " head"}}, {0, "secretary", {" young", " legal", " executive"}}, {0, "accountant", {" junior", " tax", " senior"}}, {"analyst", "systems analyst", {" temporary", " new", " senior"}}, {0, "attorney", {" young", " patent", " tax"}}, {0, "manager", {" office", " sales", " department"}}, {0, "executive", {" junior", " corporate", " senior"}}, {"vp", "vice president", {" assistant", "", " executive"}}, {0, "president", {" former", " current", " recently appointed"}}, {"director", "of the board", {" member", " member", " chairman"}} }; main() { int m,n,floor,level; int act, aff, ali; int vn=11000; char buf1[256], buf2[256], buf3[32]; srandom(getpid()); for(n=0;n<NJOB;n++) for(m=0;m<NLPJ;m++){ vn++; level=1+(m+1)*n*n+RND((n+2)*(n+2)); sprintf(buf1,"The%s %s",joblist[n].adj[m],joblist[n].job); sprintf(buf2,"%s is here.",buf1); printf("#%d\n",vn); rndstring(buf3); printf("%s %s~\n", joblist[n].key ? joblist[n].key : joblist[n].job, buf3); printf("%s~\n%s\n~\n~\n",buf1,buf2); act = rndact(); aff = rndaff(); ali = RND(2001)-1000; printf("%d %d %d S\n",act,aff,ali); printf("%d %d %d %dd%d+%d %dd%d+%d\n", level,level+1,level+1, 1,1,(level+7)*(level+5), (m+1),(n+m+1)*(level/2),level); printf("%d %d\n",n*n+n*m*m,((level+3)*(level+13)*(level+17))/2); printf("8 8 %d\n",1+RND(2)); } } rndaff() { int m; m = 268435456; if(RND(3)) m |= 8; return(m); } rndact() { int m; m = 0; if(!RND(5)) m += 1024; if(!RND(5)) m += 16384; return(m); } rndstring(char *buf) { int i; for(i=0;i<4;i++){ buf[i]='a'+RND(26); buf[4]=0; } }