Курс программирования Python. Цикл for. Поле чудес.

Цикл for в Python

buy it
Всем привет, давайте продолжим тему циклов в Python на этом занятии. В нашем курсе программирования на Python будем рассматривать возможности Python на примере известной игры «Поле чудес». И цикл for не станет здесь исключением.

canada goose readme Примечание: Примеры из этой и последующей статей тестировались под Win7. Из обнаруженных проблем — в IDLE пример работать не будет, из-за кодировок(пример заточен под запуск Python из консоли Windows и кодировку cp866 соответственно)

В предыдущем уроке мы реализовали основную логику игры. Выполнив упражнение курса по циклу While, вы вероятно обратили внимание на вот это место:

Думаю вы тоже сочли это место весьма неочевидным. Давайте перепишем этот сложный оператор map в более понятном виде, с помощью цикла for:

В этом цикле мы пробегаем по кортежу символов ответа, и если введенная пользователем буква совпадает с i-ой буквой кортежа, то в списке user_answer заменяем i-ый символ в user_answer на пользовательскую. Проще говоря «Откройте ‘letter_try’ на табло!». И мы открываем. Более полную информацию по циклу for можно посмотреть в нашем Справочнике Python.
Внимательные читатели уже заметили, что в случае for нам не нужен кортеж template, поэтому все связанное с ним мы можем удалить.
Слегка изменим условие в проверке угаданности слова:

Это также связано с особенностями кодировок в Windows. Вообще кодировки в Python довольно мутная история, но говорят в Python 3 жить стало лучше, жить стало веселее =).
Поработав над основной логикой нашей программы, можно приступить и к эстетической части. Большинство игроков привыкло к тому что игровое поле представляет собой ряд черных клеток, по количеству букв в ответе. Добавим в нашу программу псевдографическое изображения этого поля с помощью текстовых символов.
Для этого мы изменим нашу программу в следующих местах:
Инициализируем user_answer пробельными символами(вместо зведочек):

celine handbags Инициализируем новую переменную tablo значением:

Введем переменную-мультипликатор(пригодится):

readme Добавим вывод нашего игрового табло в консоль при каждой итерации цикла while:

buy it И добавим полностью открытое табло при открытии всего слова:

После всех изменений, полный текст программы выглядит вот так:

Пример раунда игры:

В следующем уроке нашего курса программирования на Python мы познакомимся с подпрограммами и сделаем код нашей игры чище и понятнее.

Предыдущий урок
Следующий урок