Замена символов в списке - PullRequest
1 голос
/ 15 января 2020

Короче я пишу небольшую игру, пользователь видит скрытое слово и должен угадать буквы, которые у меня появляются. Я успешно справляюсь с большинством, но не могу завершить слова, когда буква появляется в слове более одного раза.

def len_of_word(word):
   return word.replace(word,'_'*len(word))

def show_hidden_word(secret_word, old_letters_guessed):
    hidden = len_of_word(secret_word)
    new_string = list(hidden)
    x = 0
    for i in old_letters_guessed:
       if i in secret_word:
          x = secret_word.find(i)
          new_string[x] = new_string[x].replace(new_string[x], i)
    return " ".join(new_string)
print(show_hidden_word("aviva" , ['m', 'a', 'i', 'r', 'v', 'o', 'm']))

, в этом случае печать будет

avi _ _

1 Ответ

0 голосов
/ 15 января 2020

Итерация по secret_word вместо old_letters_guessed. Чтобы сохранить свою структуру:

def len_of_word(word):
   return word.replace(word,'_'*len(word))

def show_hidden_word(secret_word, old_letters_guessed):
    hidden = len_of_word(secret_word)
    new_string = list(hidden)
    x = 0
    for i, l in enumerate(secret_word):
       if l in old_letters_guessed:
          new_string[i] = l
    return " ".join(new_string)
print(show_hidden_word("aviva" , ['m', 'a', 'i', 'r', 'o', 'm']))

Вывод:

a _ i _ a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...