0

So I'm trying to arrange how the gameplay of my text base game will function if the player may/not have certain items in their inventory.

 print ("You are back in your cell. You saw your bed, broken sink, grotty toilet, cut up jumpsuit")
    if "comb" and "razor" in inventory:
        print ("and the table with the empty bottle.")
    else "comb" not in inventory and "razor" in inventory:
        print ("and the table with the empty bottle and comb.")
    else "razor" not in inventory and "comb" in inventory:
        print ("and the table with the empty bottle and razor")

it is telling me that I have a syntax error in this line of code

else "comb" not in inventory and "razor" in inventory:

I can't seem to see what mistake I have made, I am a beginner so perhaps there is an alternative way of executing my needs.

John
  • 37
  • 5

2 Answers2

0
print ("You are back in your cell. You saw your bed, broken sink, grotty toilet, cut up jumpsuit")
    if "comb" and "razor" in inventory:
        print ("and the table with the empty bottle.")
    elif "comb" not in inventory and "razor" in inventory:
        print ("and the table with the empty bottle and comb.")
    elif "razor" not in inventory and "comb" in inventory:
        print ("and the table with the empty bottle and razor")
mrCarnivore
  • 4,638
  • 2
  • 12
  • 29
0

You are almost there

The else works only that way

else:
    do something

So your code would be like that

 print ("You are back in your cell. You saw your bed, broken sink, grotty toilet, cut up jumpsuit")
    if "comb" and "razor" in inventory:
        print ("and the table with the empty bottle.")
    elif "comb" not in inventory and "razor" in inventory:
        print ("and the table with the empty bottle and comb.")
    elif "razor" not in inventory and "comb" in inventory:
        print ("and the table with the empty bottle and razor")

Or that

 print ("You are back in your cell. You saw your bed, broken sink, grotty toilet, cut up jumpsuit")
    if "comb" and "razor" in inventory:
        print ("and the table with the empty bottle.")
    elif "comb" not in inventory and "razor" in inventory:
        print ("and the table with the empty bottle and comb.")
    else: #using the else here
        print ("and the table with the empty bottle and razor")

However, when testing your code, I realized that the way you've put your logic will not work correctly.

Using that if all(x in inventory for x in ['comb','razor'])will treat correctly the presence of the two variables, comb and razor in inventory and allow the other conditions to be rolled out in a correct manner if one of the other value was missing.

inventory = ['comb','razor']
#inventory = ['razor','']
#inventory = ['comb']

print("You are back in your cell. You saw your bed, broken sink, grotty toilet, cut up ju
mpsuit")
if all(x in inventory for x in ['comb','razor']):
    print ("and the table with the empty bottle.")
elif ('comb' not in inventory) and ('razor' in inventory):
    print("and the table with the empty bottle and comb.")
elif ('razor' not in inventory) and ('comb' in inventory):
    print("and the table with the empty bottle and razor")
Andy K
  • 4,944
  • 10
  • 53
  • 82