Как закончить программу?
import random
words_list = ('автострада', 'бензин', 'инопланетянин', 'самолет',
'библиотека', 'шайба', 'олимпиада', 'весна')
secret_word = random.choice(words_list)
print(secret_word)
gamer_word = ['*'] * len(secret_word)
print(''.join(gamer_word))
errors_counter = 0
while True:
letter = input('введите ОДНУ русскую букву: ').lower()
if len(letter) != 1:
continue
if letter in secret_word:
for idx, symbol in enumerate(secret_word):
# print(idx, symbol)
if symbol == letter:
gamer_word[idx] = symbol
else:
errors_counter += 1
print('ошибок допущено', errors_counter)
if errors_counter == 8:
print('вы проиграли ;(')
break
print(''.join(gamer_word))
при написании восьми неверных букв код работает верно и выходит из программы. Но при написании полного слова предоставленного в массиве не завершается.
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Если в угадываемом слове не осталось ни одной *, то выходим из бесконечного цикла:
print(''.join(gamer_word))
# добавляем условие выхода
if(all(w != '*' for w in gamer_word)):
break