X-Git-Url: https://jxself.org/git/?p=wumpus.git;a=blobdiff_plain;f=wumpus.c;h=6068fd689d4af240b4035bdc8a2b0cdf6bc410dc;hp=191693f35ef67332716641066d899fd2d9aa889d;hb=c933090a7a4c96592d6c3f0df61b7c0224187ada;hpb=c939456d1ddd891ed923085088845be6aa3e2f77 diff --git a/wumpus.c b/wumpus.c index 191693f..6068fd6 100644 --- a/wumpus.c +++ b/wumpus.c @@ -2,10 +2,7 @@ * wumpus.c --- a faithful translation of the classic "Hunt The Wumpus" game. * * Translator: Eric S. Raymond - * Version: $Id$ - * - * This was the state of the art 20 years ago, in 1972. We've come a long - * way, baby. + * Version: $Id: wumpus.c,v 1.4 1996/05/17 17:30:35 esr Exp esr $ * * The BASIC source is that posted by Magnus Olsson in USENET article * <9207071854.AA21847@thep.lu.se>: he wrote @@ -31,6 +28,12 @@ */ #include +#include +#include +#include +#include +#include +#include /* 5 REM *** HUNT THE WUMPUS *** */ @@ -102,22 +105,28 @@ int getnum(prompt) char *prompt; { (void) printf("%s\n?", prompt); - (void) fgets(inp, sizeof(inp), stdin); - return(atoi(inp)); + if (fgets(inp, sizeof(inp), stdin)) + return(atoi(inp)); + else { + fputs("\n",stdout); + exit(1); + } } int getlet(prompt) char *prompt; { (void) printf("%s\n?", prompt); - (void) fgets(inp, sizeof(inp), stdin); - return(inp[0]); + if (fgets(inp, sizeof(inp), stdin)) + return(toupper(inp[0])); + else { + fputs("\n",stdout); + exit(1); + } } void print_instructions() { - char ebuf[BUFSIZ]; - /* 375 REM *** INSTRUCTIONS *** */ /* 380 PRINT "WELCOME TO 'HUNT THE WUMPUS'" */ puts("WELCOME TO 'HUNT THE WUMPUS'"); @@ -342,9 +351,7 @@ badrange: /* this simulates logic at 895 in the BASIC code */ check_shot(); - if (finished == NOT) - goto ammo; - else + if (finished != NOT) return; } @@ -361,7 +368,6 @@ badrange: /* 840 NEXT K */ } -ammo: if (finished == NOT) { /* 845 PRINT "MISSED" */ @@ -511,20 +517,21 @@ goodmove: /* 1145 RETURN */ /* 1150 END */ (void) puts("ZAP--SUPER BAT SNATCH! ELSEWHEREVILLE FOR YOU!"); - loc[YOU] = FNA(); + scratchloc = loc[YOU] = FNA(); + goto goodmove; } } -main(argc, argv) +int main(argc, argv) int argc; char *argv[]; { int c; - if (strcmp(argv[1], "-s") == 0) - srand(atol(argv[2])); + if (argc >= 2 && strcmp(argv[1], "-s") == 0) + srand(atoi(argv[2])); else - srand(time((long *) 0)); + srand((int)time((long *) 0)); /* 15 PRINT "INSTRUCTIONS (Y-N)"; */ /* 20 INPUT I$ */