Выход из цикла "while True" через проверку ввода
Всем доброго дня! Учусь программировать на Питоне, решил написать простенькую программку, имитирующую игру в города: игрок вводит слово, программа проверяет, есть ли оно в списке и начинается ли оно на ту же букву, на которую кончалось предыдущее слово(в случае если слово кончалось на й,ы,ь,ъ,ц выбирается предыдущая буква) и если слово подошло подбирает ответ. Если игрок хочет выйти, он вводит слово "Закончить". Но с какого-то момента программа начинает воспринимать его как обычное слово, выполняет проверку, пишет, что оно не подходит и не закрывается. Пожалуйста, подскажите, в чем ошибка, код прикладываю. Заранее спасибо.
from random import randint
with open("cities.txt", encoding='utf-8') as city:
worms=city.readlines()
words=[]
for word in worms:
x=word.replace("\n", "")
words.append(x)
used=[]
def check(word, previous):
while previous[-1] in ['ь', 'ъ', 'ы', 'ц', 'й']:
previous=previous.replace(previous[-1], "")
if (word in words and word[0].lower()==previous[-1].lower()):
used.append(word)
words.remove(word)
return word
elif word in used:
print("Слово уже использовали! (Вам на '" + previous[-1].upper() + "')")
return check(input(), previous)
else:
print("Неправильное слово! (Вам на '" + previous[-1].upper() + "')")
return check(input(), previous)
def com(prev):
listing=[]
while prev[-1] in ['ь', 'ъ', 'ы', 'ц', 'й']:
prev=prev.replace(prev[-1], "")
for wor in words:
if wor[0].lower()==prev[-1].lower():
listing.append(wor)
if len(listing)>=1:
w=listing[randint(0,len(listing)-1)]
used.append(w)
words.remove(w)
return w
else:
return "Вы победили!"
prev=words[randint(0, len(words)-1)]
print("Введите 'Закончить' для завершения игры")
fin=False
while True:
prev=com(prev)
print(prev)
if prev=="Вы победили!":
break
player=input()
if player=="Закончить":
break
else:
prev=check(player, prev)