int main (int argc, char * argv[]) { char ch; int i; srand (time (NULL)); fd = -1; if (argc > 2) { fprintf (stderr, "usage: wator [ file ]\n"); exit (1); } if (argc == 2) { fd = open (argv[1], O_WRONLY|O_TRUNC|O_CREAT, 0600); if (fd < 0) { perror ("open"); exit (1); } } // init_wator (MAXI, MAXJ, 10, 3, 5); init_wator (MAXI, MAXJ, 10, 3, 3); show_wator (); for (i=0;i<1000;i++) { moveall (); show_wator (); /* ch = getchar (); if (ch < 0) break; */ } return 0; }
dr_main() { register int n; register struct ship *sp; int nat[NNATION]; int value = 0; (void) signal(SIGINT, SIG_IGN); (void) signal(SIGQUIT, SIG_IGN); (void) signal(SIGTSTP, SIG_IGN); if (issetuid) (void) setuid(geteuid()); if (game < 0 || game >= NSCENE) { fprintf(stderr, "DRIVER: Bad game number %d\n", game); exit(1); } cc = &scene[game]; ls = SHIP(cc->vessels); if (sync_open() < 0) { perror("driver: syncfile"); exit(1); } for (n = 0; n < NNATION; n++) nat[n] = 0; foreachship(sp) { if (sp->file == NULL && (sp->file = (struct File *)calloc(1, sizeof (struct File))) == NULL) { (void) fprintf(stderr, "DRIVER: Out of memory.\n"); exit(1); } sp->file->index = sp - SHIP(0); sp->file->loadL = L_ROUND; sp->file->loadR = L_ROUND; sp->file->readyR = R_LOADED|R_INITIAL; sp->file->readyL = R_LOADED|R_INITIAL; sp->file->stern = nat[sp->nationality]++; sp->file->dir = sp->shipdir; sp->file->row = sp->shiprow; sp->file->col = sp->shipcol; } windspeed = cc->windspeed; winddir = cc->winddir; people = 0; for (;;) { sleep(7); if (Sync() < 0) { value = 1; break; } if (next() < 0) break; unfoul(); checkup(); prizecheck(); moveall(); thinkofgrapples(); boardcomp(); compcombat(); resolve(); reload(); checksails(); if (Sync() < 0) { value = 1; break; } } sync_close(1); return value; }