2021年3月4日星期四

Infinite Loop - While True [Python]

Running into the age old problem of the infinite loop...

Writing a text adventure game and have the game mechanics down; map and movement around it. Running into an issue with an infinite loop when I try to implement the other functionality - take items etc.

Below are 2 snippets of the code including the initializing variables, movement code, and the next stage stuff. Below the "......" are where the issue is.

All indentation is aligned as seen.

  print("Welcome to this most intrepid" + game['name']  + " your goal; should you dare to continue... is to" + game['goal'])  star_loc = int(game['start'])  curr_loc = star_loc   character = {'inventory': [], 'location':curr_loc}  x_loc = 1  y_loc = 2  command = input("You are " + map[curr_loc]["desc"] + ' what next? ')    while True:      command_parts = command.split()      cmd = command_parts[0]      print(cmd)      obj = command_parts[-1]      print(obj)      #move around map      if cmd == 'move' or cmd == 'go' or 'hiddenpath':          #handles movement on the X plane - East, West          elif obj == 'east':              if x_loc == int(game['xsize']): # use the x size the game dict instead, compute the x and y                   curr_loc = curr_loc - 2                  x_loc = 1                  y_loc = y_loc                  command = input("You are " + map[curr_loc]["desc"] + ' what next? ')              else:                  curr_loc = curr_loc + 1                  x_loc = x_loc + 1                  y_loc = y_loc                  command = input("You are " + map[curr_loc]["desc"] + ' what next? ')          elif obj == 'west':              if x_loc == int(game['xsize']) - 2:                  curr_loc = curr_loc + 2                  x_loc = x_loc = 3                  y_loc = y_loc                  command = input("You are " + map[curr_loc]["desc"] + ' what next? ')              else:                  curr_loc = curr_loc - 1                  x_loc = x_loc - 1                  y_loc = y_loc                  command = input("You are " + map[curr_loc]["desc"] + ' what next? ')    .................        if cmd == 'exit':          print('Goodbye')          break        if cmd == 'inv':          print('You are carrying')          for item in character['inventory']:              print('', item)              continue         if cmd == 'goal':          print(game['goal'])      else:          continue            if cmd == 'take':          if obj in map[curr_loc]['obj']:              print("You take the " + str(map[curr_loc]['obj'][0]))              map[curr_loc]['obj'].remove(obj)              character['inventory'].append(obj)          continue    

Major drag... └[∵┌]└[ ∵ ]┘[┐∵]┘

https://stackoverflow.com/questions/66486503/infinite-loop-while-true-python March 05, 2021 at 11:50AM

没有评论:

发表评论