+ 3

sorry for the inconvenient comments. I created the game "Gallows" and I have one problem: when the user enters the correct lette

def gibbet(guess_word): life = 5 #Количество попыток // Number of attempts list_guess_word = list(guess_word) #Превращаем N-слово в список // Turn the N-word into a list run = True while run and life > 0: mask_word = list(len(list_guess_word) * "@") #Маскируем N-слово символом "@" и превращаем в список // Mask the N-word with the " @ " symbol and turn it into a list print('{0} - замаскированое слово, которое вам нужно отгадать!\n'.format( ''.join(mask_word) )) #A disguised word to guess user_input = str(input('Введите одну букву (русского алфавита): ')) #Input one letter from the russian alphabet user_input = user_input.lower() if len(user_input) == 1 and user_input in list('абвгдеёжзийклмнопрстуфхцчшщъыьэюяabcdefghijklmnopqrstuvwxyz'): if user_input in list_guess_word: print('Вы угадали букву(-ы)!') #You have guessed the letter(s) for i in list_guess_word: if i == user_input: mask_word[list_guess_word.index(user_input)] = user_input else: pass else: print('Вы НЕ угадали букву(-ы)') #You heven't guessed the letter(s) life -= 1 print('У вас осталось {0} попыток\n'.format(life)) #You have __ attempt(s) else: print('Введено неправильное количество букв и/или введены неправильные символы. Повторите попытку.\n\n') #You entered the wrong number of letters and / or entered the wrong characters. Try again. print('ИГРА ОКОНЧЕНА.') #Game over gibbet('параход')

16th May 2020, 8:41 AM
Андрей Пермяков
Андрей Пермяков - avatar
34 Antworten
+ 1
Андрей Пермяков готово. Там же. Таблетка- перенос строки создания маски перед циклом перебора букв: mask_word = list(len(list_guess_word) * "@") вы каждый раз затирали маску собаками
16th May 2020, 9:32 AM
Petr
+ 1
Андрей Пермяков и не по теме- слова, которые склеены из двух, пишутся через О. Паровоз, пароход, самолёт:))
16th May 2020, 9:22 AM
Petr
+ 1
Пётр, либо я слепой, либо вы применили магию :) что вы исправили?
16th May 2020, 9:35 AM
Андрей Пермяков
Андрей Пермяков - avatar
+ 1
Андрей Пермяков вместо if user_input in list_guess_word: print('Вы угадали букву(-ы)!') #You have guessed the letter(s) for i in list_guess_word: if i == user_input: mask_word[list_guess_word.index(user_input)] = user_input
16th May 2020, 11:31 AM
Petr
+ 1
Андрей Пермяков Я написал if user_input in list_guess_word: print('Вы угадали букву(-ы)!') #You have guessed the letter(s) mi=0 while mi<len(list_guess_word): if user_input == list_guess_word[mi]: mask_word[mi] = user_input mi+=1 print(str(mask_word))
16th May 2020, 11:32 AM
Petr
0
Андрей Пермяков суть проблемы в чем?
16th May 2020, 8:46 AM
Petr
0
Суть проблемы в том, что при угадывании буквы она не "открывается" в замаскированном слове. То есть вместо "@" должна появиться, к примеру, "а" во всех частях слова, где она есть
16th May 2020, 8:48 AM
Андрей Пермяков
Андрей Пермяков - avatar
0
Андрей Пермяков выложить код открытым, чтобы с ним можно было поиграть
16th May 2020, 8:49 AM
Petr
0
Как это сделать?)
16th May 2020, 8:49 AM
Андрей Пермяков
Андрей Пермяков - avatar
0
Андрей Пермяков у вас в профиле есть один открытый код "генератор случайных чисел". Вы же его как то сделали
16th May 2020, 8:51 AM
Petr
0
Понял принял
16th May 2020, 8:52 AM
Андрей Пермяков
Андрей Пермяков - avatar
0
Открыл
16th May 2020, 8:54 AM
Андрей Пермяков
Андрей Пермяков - avatar
0
Андрей Пермяков посмотрите у меня в открытых именной для Вас. Добавил строку print(str(mask_word)) Но при вводе в второй буквы Ваш код теряет память. Роем дальше? https://code.sololearn.com/cv3H4s5hvcW3/?ref=app
16th May 2020, 9:16 AM
Petr
0
Таак, я понял, всего лишь str надо было добавить. Хорошо, почему тогда не запоминаются изменения? Надо дальше, да.
16th May 2020, 9:18 AM
Андрей Пермяков
Андрей Пермяков - avatar
0
Андрей Пермяков а пальцы за меня тоже Вы загибать будете? :))Немного тяжеловато в телефоне редактировать код. Но будем искать. Такой же с перламутровыми пуговицами:)
16th May 2020, 9:20 AM
Petr
0
Ничего не понял, но я уже заколебался искать причину проблемы, хотя вроде по синтаксису нигде не ошибся
16th May 2020, 9:22 AM
Андрей Пермяков
Андрей Пермяков - avatar
0
Ахах да, русский на 5! Класс
16th May 2020, 9:22 AM
Андрей Пермяков
Андрей Пермяков - avatar
0
Андрей Пермяков Я перенес маску из собак до цикла ввода букв
16th May 2020, 9:36 AM
Petr
0
Ахаха гениально, а так я всё сделал правильно. Спасибо большое, Пётр. Очень выручили )
16th May 2020, 9:37 AM
Андрей Пермяков
Андрей Пермяков - avatar
0
Андрей Пермяков всегда пожалуйста:)
16th May 2020, 9:38 AM
Petr