jeudi 22 octobre 2020

if, elif & !=, == boolean operations only return "false" with inputs

I am creating an Among Us ripoff (for fun!) and the while True & if/elif/else statements will only return false (not An Impostor) with the inputs. I had created a list for the names and 2 random elements from the list will be chosen as An Impostor. However, whenever I input a name that is The Impostor, it will only return

(player) was not An Impostor.

Here is my code;

import sys, time, random
names = ["player1", "player2", "player3", "player4", "player5", "player6", "player7", "player8", "player9", "player10"]
print("Players: ")
for x in names:
  print(x)
print('—————————————————————————')
impostor1 = random.choice(names)
impostor2 = random.choice(names)
crewmates = 8
impostors = 2
tries = 6
while True:
  talk = input("Guess who The Impostor(s) are. " + str(crewmates) + " Crewmates are left. " + str(impostors) + " Impostors are left. You have " + str(tries) + " tries left.")
  if talk in names:
    print(talk + " was voted for.")
    time.sleep(0.1)
    if talk != impostor1 or talk != impostor2:
      notimp = talk + " was not An Impostor. "
      names.remove(talk)
      for y in notimp:
        sys.stdout.write(y)
        sys.stdout.flush()
        time.sleep(0.05)
      crewmates -= 1
      tries -= 1
    elif talk == impostor1 or talk == impostor2:
      wasimp = talk + " was An Impostor. "
      names.remove(talk)
      for v in wasimp:
        sys.stdout.write(v)
        sys.stdout.flush()
        time.sleep(0.1)
      impostors -= 1
  else:
    print("That player was either ejected or is not a valid player.")

However, whenever I put the Impostor in the input, it says it isn't An Impostor?

Aucun commentaire:

Enregistrer un commentaire