X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=wumpus.c;h=857bce2df15bfc267b90165cf3581be85931bf2b;hb=4aeaddc2e41651d9b2c173d4cb7a81914feaf4ab;hp=0bb6315bccfb3f4360ea3c828d679f51d2888401;hpb=493865da581f5d10901bad2f3e4af36217dd43cc;p=wumpus.git diff --git a/wumpus.c b/wumpus.c index 0bb6315..857bce2 100644 --- a/wumpus.c +++ b/wumpus.c @@ -230,16 +230,20 @@ void check_hazards() /* 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) */ @@ -517,8 +521,11 @@ goodmove: /* 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 */ @@ -528,8 +535,9 @@ goodmove: /* 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 */