Я строю игру-головоломку в Python.У меня есть правильное слово-загадка и угаданное слово-загадка.Я хочу построить третью строку, которая показывает правильные буквы в угаданной загадке в правильном слове загадки и _ в положении неправильных букв.
Например, допустим, что правильным словом является APPLE
, а угаданное слово - APTLE
, тогда я хочу получить третью строку: AP_L_
Гаданное слово и правильное слово:гарантированно будет от 3 до 5 символов, но угаданное слово не обязательно будет иметь ту же длину, что и правильное слово
Например, правильное слово TEA
и угаданное слово TEAKO
, тогдатретья строка должна быть TEA__
, потому что игроки угадали последние две буквы неправильно.
Другой пример, правильное слово APPLE
и предполагаемое слово POP
, третья строка должна быть:
_ _ P_ _
(без пробела)
Iможет успешно получить сопоставленные индексы правильного и угаданного слова;Однако у меня проблемы со сборкой третьей строки.Я только что узнал, что строки в Python неизменны и что я не могу назначить что-то вроде str1[index] = str2[index]
Я пробовал много вещей, включая использование списков, но я не получаю правильный ответ.Прикрепленный код является моей последней попыткой, не могли бы вы помочь мне решить эту проблему?
Спасибо
найти совпадение между puzzle_word и предположить
def matcher(str_a, str_b):
#find indexes where letters overlap
matched_indexes = [i for i, (a, b) in enumerate(zip(str_a, str_b)) if a == b]
result = []
for i in str_a:
result.append('_')
for value in matched_indexes:
result[value].replace('_', str_a[value])
print(result)
matcher("apple", "allke")
выходной результатсейчас список из пяти "_"
случаев:
- правильное слово
APPLE
и предполагаемое слово APTLE
третья строка: AP_L_
- правильное слово
TEA
и предполагаемое слово TEAKO
, третья строка должна быть TEA__
- правильное слово
APPLE
и предполагаемое слово POP
, третья строка должна быть _ _ P_ _