/* 635 PRINT "BATS NEARBY!" */
/* 640 NEXT K */
/* 645 NEXT J */
- for (k = 0; k < 3; k++)
+ for (j = WUMPUS; j < LOCS; j++)
{
- int room = cave[loc[YOU]][k];
-
- if (room == loc[WUMPUS])
- (void) puts("I SMELL A WUMPUS!");
- else if (room == loc[PIT1] || room == loc[PIT2])
- (void) puts("I FEEL A DRAFT");
- else if (room == loc[BATS1] || room == loc[BATS2])
- (void) puts("BATS NEARBY!");
+ for (k = 0; k < 3; k++)
+ {
+ if (cave[loc[YOU]][k] != loc[j])
+ continue;
+
+ if (j == WUMPUS)
+ (void) puts("I SMELL A WUMPUS!");
+ else if (j == PIT1 || j == PIT2)
+ (void) puts("I FEEL A DRAFT");
+ else if (j == BATS1 || j == BATS2)
+ (void) puts("BATS NEARBY!");
+ }
}
/* 650 PRINT "YOU ARE IN ROOM "L(1) */
/* 1080 RETURN */
(void) puts("... OOPS! BUMPED A WUMPUS!");
move_wumpus();
+ if (finished < 0)
+ return;
+ /* Fall through since Wumpus could have been in a pit or bat room */
}
- else if (scratchloc == loc[PIT1] || scratchloc == loc[PIT2])
+ if (scratchloc == loc[PIT1] || scratchloc == loc[PIT2])
{
/* 1085 REM *** PIT *** */
/* 1090 IF L=L(3) THEN 1100 */
/* 1110 RETURN */
(void) puts("YYYYIIIIEEEE . . . FELL IN PIT");
finished = LOSE;
+ return;
}
- else if (scratchloc == loc[BATS1] || scratchloc == loc[BATS2])
+ if (scratchloc == loc[BATS1] || scratchloc == loc[BATS2])
{
/* 1115 REM *** BATS *** */
/* 1120 IF L=L(5) THEN 1130 */