/*
* wumpus.c --- a faithful translation of the classic "Hunt The Wumpus" game.
*
- * Translator: Eric S. Raymond <eric@snark.thyrsus.com>
- * Version: $Id$
- *
- * This was the state of the art 20 years ago, in 1972. We've come a long
- * way, baby.
+ * Translator: Eric S. Raymond <esr@snark.thyrsus.com>
+ * 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
*/
#include <stdio.h>
+#include <ctype.h>
/* 5 REM *** HUNT THE WUMPUS *** */
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()
/* this simulates logic at 895 in the BASIC code */
check_shot();
- if (finished == NOT)
- goto ammo;
- else
+ if (finished != NOT)
return;
}
/* 1145 RETURN */
/* 1150 END */
(void) puts("ZAP--SUPER BAT SNATCH! ELSEWHEREVILLE FOR YOU!");
- loc[YOU] = FNA();
+ scratchloc = loc[YOU] = FNA();
+ goto goodmove;
}
}
{
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$ */