Как закончить программу?

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
→ Ссылка