Форум сайта python.su
0
Решаю задачу по мотивам курса от “STEPIK”. Не могу понять как сделать возможность замены символа “*”, на соответствующую букву. Игра “Виселеца”.
import random # список слов для загадывания word_list = ['mama', 'papa', 'brat', 'sestra'] # список слов для игры # загадываем слово def get_word(word_list): return random.choice(word_list).upper() # функция получения текущего состояния игры def display_hangman(tries): stages = [ # финальное состояние: голова, торс, обе руки, обе ноги ''' -------- | | | O | \\|/ | | | / \\ | | - ''', # голова, торс, обе руки, одна нога ''' -------- | | | O | \\|/ | | | / | | - ''', # голова, торс, обе руки ''' -------- | | | O | \\|/ | | | | | - ''', # голова, торс и одна рука ''' -------- | | | O | \\| | | | | | - ''', # голова и торс ''' -------- | | | O | | | | | | | - ''', # голова ''' -------- | | | O | | | | | - ''', # начальное состояние ''' -------- | | | | | | | | - ''' ] return stages[tries] # основная логика игры def play(word): # начальные данные word_completion = '*' * len(word) # строка содержащая символы * на каждую букву задуманного слова guessed_words = [] # список уже названых букв quessed_letters = [] # список названых слов tries = 6 # количество попыток # начальные этап игры print('Давайте играть в угадайку слов.') print('У вас будет 6 попыток.') print(display_hangman(tries)) print('Загаданное слово:', word_completion) # запрашиваем букву или слово while tries !=0: # проверяем что введены именно буквенные символы quessed = input('Назовите букву или слово целиком: ').upper() if not quessed.isalpha(): print('Только букву или слово целиком') # если уже называли такую букву elif quessed in guessed_words: print('Вы уже называли такую букву.') #continue # если уже называли такое слово elif quessed in quessed_letters: print('Вы уже называли такое слово.') #continue # проверяем наличие буквы в загаданном слове elif quessed.isalpha(): if len(quessed) == 1: # если введена 1 буква if quessed in word: # и если она присутствует в слове guessed_words.append(quessed) # добавляем в список ранее введенных print('Есть такая буква в этом слове') continue else: tries -= 1 # сокращаем количество попыток на 1 guessed_words.append(quessed) print('Такой буквы в слове нет') print(display_hangman(tries)) print('Осталось попыток:', tries) if tries == 0: print('Вы не смогли угадать слово:', word) break elif len(quessed) > 1: if quessed != word: tries -= 1 print(display_hangman(tries)) quessed_letters.append(quessed) # заносим слово в список слов print('Неверно осталось попыток:', tries) print(word_completion) if tries == 0: print('Вы не смогли угадать слово:', word) break # если угадали слово elif quessed == word: print('Поздравляем, вы угадали слово!') break play(get_word(word_list)
Офлайн
124
word = 'помидор' hidden = ['*'] * len(word) while True: a = input('>') for i in range(len(word)): if a == word[i]: hidden[i] = a print(''.join(hidden))
Офлайн
0
xam1816Спасибо большое, уже реализовал так же циклом, только со срезами…Но, все равно спасибо за помощь)
Офлайн