Как можно оптимизировать код ниже либо сделать его чище?
Игра в слова.
Есть 2 цикла for, но они играют разные роли. 1-ый составляет список слов для игры, 2-ой включает слова, которые ещё не использовались.
import random
my_file = (open('C:/Users/User/Desktop/слова.txt'))
text = my_file.read()
my_file.close()
words = []
available_words = list(words)
for word in text.split():
words.append(word)
available_words = list(words)
random.shuffle(available_words)
anyword = available_words.pop()
print("Рандомное слово " + anyword)
def playing(anyword):
game_is_over = False
while not game_is_over:
mess = input()
if len(mess) != 0:
if anyword[-1] == "ъ" or anyword[-1] == "ь" or anyword[-1] == "ы":
if anyword[-2] == mess.lower()[0]:
print(anyword)
for candidant in available_words:
if candidant.lower()[0] == mess.lower()[-1]:
anyword = candidant
print(anyword)
available_words.remove(candidant)
break
else:
print(
"Неверно, слово должно начинаться с буквы " + anyword[-2])
elif mess.lower()[0] != anyword.lower()[-1]:
print(
"Неверно, слово должно начинаться с буквы " + anyword[-1])
else:
for candidant in available_words:
if candidant.lower()[0] == mess.lower()[-1]:
anyword = candidant
print(anyword)
available_words.remove(candidant)
break
elif mess.lower()[-1] == "ъ" or mess.lower()[-1] == "ь" or mess.lower()[-1] == "ы":
if candidant[0].lower() == mess[-2].lower():
anyword = candidant
print(anyword)
available_words.remove(candidant)
break
else:
print("Словарный запас был иссечён, схожу за новой порцией.")
game_is_over = True
else:
print("Введите слово")
playing(anyword)