Бесплатные игры онлайн без регистрации, флеш игры
| Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоVK ComboВсе проекты |
На главную
Мини-игры
12+
Покер
Классика жанра, аутентичный Texas HoldEm! Покер — тренажер для концентрации внимания и логического мышления. Развивает дисциплину и учит правильному планированию.
Играть
12+
Однорукий бандит
Беспроигрышный слот Однорукий Бандит приносит выигрыши в фишках и золоте, развивает игровую интуицию и дарит удачу 777.
Играть
12+
Русский Покер
Русский покер — игра для четырех человек с традиционным русским колоритом. Легко понятные правила, увлекательный геймплей. Тренировка кратковременной зрительной памяти, логики и самоконтроля.
Играть
12+
Poker Arena
Участвуйте в покерных турнирах и получайте удовольствие от игры, где мастерство значит столько же, сколько удача! Покер увеличивает объем рабочей памяти и развивает невербальную память. Совершенствует зрительное восприятие.
Играть
6+
Балда
Распространённая настольная игра на составление слов из букв на игровом поле! Кроме прокачки эрудиции, Балда развивает память на названия: профилактика забывчивости в легкой игровой форме.
Играть
6+
Эрудит
Блесни словарным запасом! Популярная игра на составление слов. Расширяет словарный запас и кругозор, совершенствует навыки восприятия и чтения, повышает скорость визуального сканирования. Аналоги игры: Телеграф, Словодел, Скрэббл (Scrabble).
Играть
12+Рулетка
Игра в рулетку — круговорот азарта и удачи. Делайте ставки, господа! Игра-антидепрессант и союзник в борьбе со стрессом.
Играть
12+
Тысяча
Тысяча (1000) — карточная игра для любителей преферансов и карточных взяточных игр. Развивают зрительное внимание и аналитические способности мозга.
Играть
6+
Словоряд
Словоряд – оригинальная словесная игра с механикой match-3 (три-в-ряд). Тренажер для зрительного восприятия и памяти.
Играть
6+
Инди Кот
Инди Кот — онлайн игра в жанре три-в-ряд! Собирайте артефакты в затерянных мирах! Игра улучшает невербальную память и прокачивает навыки планирования.
Играть
6+
Чудеса
Игра Чудеса: в мире сказок — спаси сказочных героев! Тренирует логическое мышление, борется с возрастными изменениями в памяти и прокачивает навыки планирования.
Играть
12+
Храп
Делай ставки и выигрывай банк в увлекательной карточной онлайн-игре Храп. Игра препятствует возрастным когнитивным нарушениям, борется с расстройствами памяти и предотвращает болезни иммунитета.
Играть
6+
Буркозел
Популярная карточная игра со школьного двора! Тренажер для зрительной памяти, логики и концентрации внимания.
Играть
6+Кинг
Игра Кинг — онлайн-версия знаменитого преферанса для троих или четверых человек.
Придумай хитроумную стратегию! Прокачай внимательность, зрительную память, натренируй визуальное восприятие.
Играть
6+
Море слов
Набирайте очки, составляя сложные слова из предложенных наборов букв и побеждайте в увлекательной онлайн-игре на развитие логики! Развивает внимательность, память на названия предметов, улучшает эрудицию и учит быстро принимать решения.
Играть
6+
Пазлы
Головоломка с мировым именем и любовью миллионов людей. Пусть головоломка сложится и задача решится! Игра учит быстрее запоминать зрительные образы, развивает пространственное восприятие и приучает к планированию.
Играть
6+
Виселица
Любителям играть словами. Вспомните любимую игру детства – Виселицу! Игры со словами развивают память на названия и имена и тренирует визуальное сканирование, чтобы повысить внимательность и научиться принимать решения быстро и без стресса.
Играть
6+
Воображариум
«Воображариум» — настольная онлайн-игра в ассоциации. Победи соперников силой воображения! Тренирует невербальную память и развивает творческие способности.
Играть
6+
Пасьянс Косынка
Косынка — классический пасьянс! Соревнуйтесь с другими. Подходит для тренировки распределенного внимания, умения выполнять много дел сразу. Учит находить выход в сложных ситуациях. У старшего поколения Пасьянс — профилактика возрастных изменений мозга.Играть
0+
Верю — не верю
А какой выбор сделаете вы? Верить или не верить? Вот в чем вопрос!
Играть
12+
Нарды длинные
Древняя восточная игра — длинный вариант! Нарды развивают память и логику, улучшают способность к прогнозированию и концентрации внимания.![]()
Играть
6+
Домино
В этой игре козла забивают самым миролюбивым образом! Попутно развивает арифметические способности, помогает выработать стратегическое мышление. Увеличит количество эндорфинов — это приводит к сокращению кровяного давления и повышает стрессоустойчивость.
Играть
6+
Бильярд восьмерка
Распространенная и популярная разновидность бильярда. Присоединяйся к игре! Приятный способ научиться лучше концентрировать внимание и контролировать эмоции.
Играть
6+
Бильярд девятка
Усложненная разновидность классического бильярда. Собери друзей за столом! Игра учит контролю внимания, укрепляет силу воли, уравновешивает эмоции, учит сопротивляться и не терять веру в себя.
Играть
6+
Русский бильярд
Русская модификация классического бильярда.
Учит мыслить творчески и стратегически, укрепляет нервную систему и оттачивает глазомер.
Играть
6+
Морской бой
Вспомним школьные годы! Эпические морские сражения на листочках в клеточку! Учит владеть собой, реализовать и анализировать свои и чужие игровые стратегии, тренирует зрительную память и логику.
Играть
6+
Покер на костях
Схвати удачу за хвост! Собери правильную комбинацию! Тренировка зрительной памяти и логического мышления.
Играть
12+
Нарды короткие
Древняя игра с восточным колоритом — короткий вариант! Нарды повышают показатели аналитического мышления, развивают когнитивную гибкость и способность думать над несколькими вещами одновременно.
Играть
12+
Преферанс
Карточная игра русских аристократов XIX века.
Осторожно, только для интеллектуалов! Преферанс улучшает математические способности, помогает научиться быстро производить в уме сложные операции. Тренирует память и логику.
Играть
6+
Зверята: 3 в ряд
Зверята: три-в-ряд — бесплатная онлайн-игра в жанре match-3 (три-в-ряд). Развивает способность фокусироваться и контролировать одновременно много действий, улучшает настроение. Стабилизирует настроение. Игровая профилактика стресса.
Играть
6+
Русское Лото
Русское лото. Для тех, кто помнит классику! Тренажер для прокачки кратковременной памяти и фокусированного внимания.
Играть
6+
Шахматы
Проведите блестящую партию в стратегической игре с мировым именем. Шах и мат! Тренируйте аналитические способности, развивайте память, концентрацию.
Шахматы повышают способность обучаться в других областях знаний и развивают целеустремленность.
Играть
6+
Шашки
Игра для тех, кто ценит классику. Обставь друга! Раз — и в дамки! Обучает правильно распределять внимание и расширяет объем рабочей памяти.
Играть
6+
Арканоид
Классическая видеоигра! Управляй ракеткой, отбивай мячик, разбей стенку и собери бонусы! Регулярные аркадные тренировки прокачивают кратковременную зрительную память, улучшают способность концентрироваться, быстро распознавать и реагировать на внешние стимулы.
Играть
6+
Дурак подкидной
Популярная карточная игра для веселой компании, подкидной вариант! Несложные правила делают игру легкой для освоения, но с точки зрения разнообразия стратегий и тактик Дурак подкидной учит вырабатывать алгоритмы решения игровых ситуаций, улучшает зрительную память.
Играть
6+
Дурак переводной
Распространенная карточная игра для веселой компании, переводной вариант! Незаменим для тренировки логического мышления и памяти. За счет геймлея Дурак переводной — действенный тренажер концентрации внимания.
Играть
12+
Бизнес-Тур
Бизнес-Тур — игра на основе классической настольной монополии. Обыграй соперников и стань самым влиятельным человеком мира! Развивает стратегическое мышление, тренирует зрительную память и приучает к разумному планированию бюджета.
Играть
смотреть ещё
Бесплатные игры онлайн без регистрации, флеш игры
| Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоVK ComboВсе проекты |
На главную
Мини-игры
12+
Покер
Классика жанра, аутентичный Texas HoldEm! Покер — тренажер для концентрации внимания и логического мышления.
Развивает дисциплину и учит правильному планированию.
Играть
12+
Однорукий бандит
Беспроигрышный слот Однорукий Бандит приносит выигрыши в фишках и золоте, развивает игровую интуицию и дарит удачу 777.
Играть
12+
Русский Покер
Русский покер — игра для четырех человек с традиционным русским колоритом. Легко понятные правила, увлекательный геймплей. Тренировка кратковременной зрительной памяти, логики и самоконтроля.
Играть
12+
Poker Arena
Участвуйте в покерных турнирах и получайте удовольствие от игры, где мастерство значит столько же, сколько удача! Покер увеличивает объем рабочей памяти и развивает невербальную память. Совершенствует зрительное восприятие.
Играть
6+
Балда
Распространённая настольная игра на составление слов из букв на игровом поле! Кроме прокачки эрудиции, Балда развивает память на названия: профилактика забывчивости в легкой игровой форме.
Играть
6+
Эрудит
Блесни словарным запасом! Популярная игра на составление слов. Расширяет словарный запас и кругозор, совершенствует навыки восприятия и чтения, повышает скорость визуального сканирования. Аналоги игры: Телеграф, Словодел, Скрэббл (Scrabble).
Играть
12+
Рулетка
Игра в рулетку — круговорот азарта и удачи. Делайте ставки, господа! Игра-антидепрессант и союзник в борьбе со стрессом.
Играть
12+
Тысяча
Тысяча (1000) — карточная игра для любителей преферансов и карточных взяточных игр. Развивают зрительное внимание и аналитические способности мозга.
Играть
6+
Словоряд
Словоряд – оригинальная словесная игра с механикой match-3 (три-в-ряд).
Тренажер для зрительного восприятия и памяти.
Играть
6+
Инди Кот
Инди Кот — онлайн игра в жанре три-в-ряд! Собирайте артефакты в затерянных мирах! Игра улучшает невербальную память и прокачивает навыки планирования.
Играть
6+
Чудеса
Игра Чудеса: в мире сказок — спаси сказочных героев! Тренирует логическое мышление, борется с возрастными изменениями в памяти и прокачивает навыки планирования.
Играть
12+
Храп
Делай ставки и выигрывай банк в увлекательной карточной онлайн-игре Храп. Игра препятствует возрастным когнитивным нарушениям, борется с расстройствами памяти и предотвращает болезни иммунитета.
Играть
6+
Буркозел
Популярная карточная игра со школьного двора! Тренажер для зрительной памяти, логики и концентрации внимания.
Играть
6+
Кинг
Игра Кинг — онлайн-версия знаменитого преферанса для троих или четверых человек. Придумай хитроумную стратегию! Прокачай внимательность, зрительную память, натренируй визуальное восприятие.
Играть
6+
Море слов
Набирайте очки, составляя сложные слова из предложенных наборов букв и побеждайте в увлекательной онлайн-игре на развитие логики! Развивает внимательность, память на названия предметов, улучшает эрудицию и учит быстро принимать решения.
Играть
6+
Пазлы
Головоломка с мировым именем и любовью миллионов людей. Пусть головоломка сложится и задача решится! Игра учит быстрее запоминать зрительные образы, развивает пространственное восприятие и приучает к планированию.
Играть
6+
Виселица
Любителям играть словами. Вспомните любимую игру детства – Виселицу! Игры со словами развивают память на названия и имена и тренирует визуальное сканирование, чтобы повысить внимательность и научиться принимать решения быстро и без стресса.
Играть
6+
Воображариум
«Воображариум» — настольная онлайн-игра в ассоциации. Победи соперников силой воображения! Тренирует невербальную память и развивает творческие способности.
Играть
6+
Пасьянс Косынка
Косынка — классический пасьянс! Соревнуйтесь с другими. Подходит для тренировки распределенного внимания, умения выполнять много дел сразу. Учит находить выход в сложных ситуациях. У старшего поколения Пасьянс — профилактика возрастных изменений мозга.
Играть
0+
Верю — не верю
А какой выбор сделаете вы? Верить или не верить? Вот в чем вопрос!
Играть
12+
Нарды длинные
Древняя восточная игра — длинный вариант! Нарды развивают память и логику, улучшают способность к прогнозированию и концентрации внимания.
Играть
6+
Домино
В этой игре козла забивают самым миролюбивым образом! Попутно развивает арифметические способности, помогает выработать стратегическое мышление. Увеличит количество эндорфинов — это приводит к сокращению кровяного давления и повышает стрессоустойчивость.
Играть
6+
Бильярд восьмерка
Распространенная и популярная разновидность бильярда.
Присоединяйся к игре! Приятный способ научиться лучше концентрировать внимание и контролировать эмоции.
Играть
6+
Бильярд девятка
Усложненная разновидность классического бильярда. Собери друзей за столом! Игра учит контролю внимания, укрепляет силу воли, уравновешивает эмоции, учит сопротивляться и не терять веру в себя.
Играть
6+
Русский бильярд
Русская модификация классического бильярда. Учит мыслить творчески и стратегически, укрепляет нервную систему и оттачивает глазомер.
Играть
6+
Морской бой
Вспомним школьные годы! Эпические морские сражения на листочках в клеточку! Учит владеть собой, реализовать и анализировать свои и чужие игровые стратегии, тренирует зрительную память и логику.
Играть
6+
Покер на костях
Схвати удачу за хвост! Собери правильную комбинацию! Тренировка зрительной памяти и логического мышления.
Играть
12+
Нарды короткие
Древняя игра с восточным колоритом — короткий вариант! Нарды повышают показатели аналитического мышления, развивают когнитивную гибкость и способность думать над несколькими вещами одновременно.
Играть
12+
Преферанс
Карточная игра русских аристократов XIX века. Осторожно, только для интеллектуалов! Преферанс улучшает математические способности, помогает научиться быстро производить в уме сложные операции. Тренирует память и логику.
Играть
6+
Зверята: 3 в ряд
Зверята: три-в-ряд — бесплатная онлайн-игра в жанре match-3 (три-в-ряд).
Развивает способность фокусироваться и контролировать одновременно много действий, улучшает настроение. Стабилизирует настроение. Игровая профилактика стресса.
Играть
6+
Русское Лото
Русское лото. Для тех, кто помнит классику! Тренажер для прокачки кратковременной памяти и фокусированного внимания.
Играть
6+
Шахматы
Проведите блестящую партию в стратегической игре с мировым именем. Шах и мат! Тренируйте аналитические способности, развивайте память, концентрацию. Шахматы повышают способность обучаться в других областях знаний и развивают целеустремленность.
Играть
6+
Шашки
Игра для тех, кто ценит классику. Обставь друга! Раз — и в дамки! Обучает правильно распределять внимание и расширяет объем рабочей памяти.
Играть
6+
Арканоид
Классическая видеоигра! Управляй ракеткой, отбивай мячик, разбей стенку и собери бонусы! Регулярные аркадные тренировки прокачивают кратковременную зрительную память, улучшают способность концентрироваться, быстро распознавать и реагировать на внешние стимулы.
Играть
6+
Дурак подкидной
Популярная карточная игра для веселой компании, подкидной вариант! Несложные правила делают игру легкой для освоения, но с точки зрения разнообразия стратегий и тактик Дурак подкидной учит вырабатывать алгоритмы решения игровых ситуаций, улучшает зрительную память.
Играть
6+
Дурак переводной
Распространенная карточная игра для веселой компании, переводной вариант! Незаменим для тренировки логического мышления и памяти.
За счет геймлея Дурак переводной — действенный тренажер концентрации внимания.
Играть
12+
Бизнес-Тур
Бизнес-Тур — игра на основе классической настольной монополии. Обыграй соперников и стань самым влиятельным человеком мира! Развивает стратегическое мышление, тренирует зрительную память и приучает к разумному планированию бюджета.
Играть
смотреть ещё
Игровое упражнение Python Shirtori — Code Review Stack Exchange
Задавать вопрос
спросил
Изменено 2 года, 11 месяцев назад
Просмотрено 816 раз
\$\начало группы\$
Я хочу улучшить свой код в целом с помощью экспертной оценки.
Я выполнил следующее упражнение: https://edabit.com/challenge/dLnZLi8FjaK6qKcvv.
Упражнение заключается в создании английской версии игры Shiritori. Вы можете найти объяснение, перейдя по ссылке, но я все равно объясню ниже.
Игра на совпадение слов, где последняя буква последнего произнесенного слова должна совпадать с первой буквой следующего слова. Слово нельзя использовать снова после того, как оно было сыграно в этой игре. Если слово не соответствует этим правилам, игра заканчивается и игра начинается заново.
Пожалуйста, найдите код ниже:
Источник #упражнений = https://edabit.com/challenge/dLnZLi8FjaK6qKcvv
'''
Класс Сиритори
Управляет действием и состоянием игры
'''
класс Сиритори:
'''
Настройте пустой массив для хранения последних использованных слов.
Сохраняет используемое в данный момент слово для оценки
Инициирует основной игровой цикл main()
'''
защита __init__(сам):
self.playedWords = []
self.
currentWord = Нет
self.main ()
'''
Определяет, соответствует ли первая буква текущего слова последней букве слова
'''
определение правилаОдин (я):
lastWord = self.playedWords[-1]
если lastWord[-1] == self.currentWord[0]:
вернуть Истина
вернуть ложь
'''
Определяет, было ли уже сыграно текущее слово
'''
Def ruleTwo (я):
если self.currentWord в self.playedWords:
вернуть ложь
вернуть Истина
'''
Добавляет текущее слово в список воспроизводимых слов
'''
определение addWord (я):
self.playedWords.append(self.currentWord)
'''
Сыграть ход
1. вводит слово, которое преобразуется в нижний регистр и удаляет все дополнительные пробелы
2. проверяет, является ли это первое воспроизводимое слово, добавляет слово, если слова не воспроизводились
3. проверяет слово на соответствие правилу 1 и правилу 2, добавляет слово, если оба правила верны
4.
если 2 или 3 не были выполнены, активируйте сообщение о завершении игры и перезапустите игру.
'''
def play(я, слово):
слово = слово.нижний()
слово = слово.strip()
self.currentWord = слово
если не self.playedWords:
self.addWord()
elif(self.ruleOne() и self.ruleTwo()):
self.addWord()
еще:
self.gameOver()
'''
печатает сообщение о завершении игры и перезапускает игру
'''
защита gameOver (я):
print("Вы проиграли. Игра перезапускается.")
self.playedWords = []
self.currentWord = Нет
'''
Основной цикл игры. Продолжает принимать слова от пользователей и воспроизводить их в играх.
Выйдите из цикла, введя пустую строку или просто нажав Enter.
'''
деф основной (я):
print("Введите слово или введите '', чтобы выйти из игры")
пока верно:
word = input("Пожалуйста, введите слово>")
самостоятельная игра (слово)
если слово == '':
перерыв
print("Спасибо за игру.
")
игра = Сиритори()
Редактировать 1
Объяснение кода
После запуска код должен запустить основную функцию класса, которая будет повторяться до тех пор, пока пользователь не решит выйти, нажав клавишу ввода (введя пустую строку). В противном случае программа должна принять строку символов как слова. Обратите внимание, что данные не анализируются, кроме перевода слова в нижний регистр и удаления дополнительных пробелов. Введенное слово будет проверено по массиву, чтобы увидеть, совпадают ли два правила, если правила не совпадают, то игра переходит в функцию «игра окончена», которая автоматически сбрасывает игру.
Игра запускается в консоли.
Нестандартный выбор
массив[-1]истрока[-1]последняя буква и последняя строкаПервоначально я использовал
len(строка/массив)-1для получения последней буквы/строки. Однако это кажется более привлекательным, но сомнительно, что это читаемоОсновной внутри или снаружи класса
Я выбрал внутри, но, возможно, он должен быть вне класса, поскольку имеет смысл иметь там основной цикл и держать его отдельно от объекта, однако это основные элементы управления, поэтому я не уверен.

функция воспроизведения
if,elif,elseесли операториelifделают одно и то же, должен быть более эффективный способ сделать это без разделения действия на функцию и наличия обоих операторовесли слово == ''Не уверен, что это неортодоксально, но должно быть лучшее сравнение
word.lower(),word.strip(),self.currentWord = словоВозможно, есть лучший способ совместить это?
- питон
- питон-3.x
- игра
\$\конечная группа\$
3
\$\начало группы\$
Прежде чем углубляться в код, давайте посмотрим, какие «неортодоксальные варианты» перечислены в вопросе
Использование
array[-1]полностью соответствует Python и, скорее всего, будет считаться гораздо более читабельным и Pythonic, чем использованиеlen(..
..)-1 основнойфункциональныйИметь основную функцию
внутри класса и вызывать ее напрямую при создании объекта, ИМХО, гораздо более неортодоксально. Я бы лично не одобрял этого, хотя это, вероятно, не является чем-то неслыханным. В Python обычно используется отдельная функцияmain()с игровым циклом, а также печально известная функция, если __name__ == "main":, также известный как среда сценария верхнего уровня в технических терминах. Весь код внутри тела этого, еслизапускается только тогда, когда вы выполняете файл как скрипт, вместо этого, например.импортироватьчто-то в другой файл.функция play,ifоператорЛегко совместить оба условия:
, если не self.playedWords или (self.ruleOne() и self.ruleTwo()):
self.addWord()
еще:
self.gameOver()
Также можно было бы инвертировать условие:
если self.playedWords и не (self.ruleOne() или self.ruleTwo()): self.gameOver() еще: self.addWord()
если слово == ''Python призывает вас быть явным в своем коде. Просто ради аргумента,
, если не слово:, будет иметь аналогичный эффект.word.lower(), word.strip(), self.currentWord = словоЭти вызовы можно объединить в цепочку:
self.currentWord = word.lower().strip(). Краткое примечание:.strip()удаляет только конечные и начальные пробелы. Если пользователь ввел несколько слов, пробелы между ними не изменятся.
Я настоятельно рекомендую взглянуть на официальное руководство по стилю для кода Python, также известное как PEP 8 (снова). Вот некоторые ключевые выводы из этого чтения:
- предпочитают использовать
строчные_с_подчеркиванием0038 для имен функций и переменных. -
Верхний регистр"зарезервирован" для имен классов (здесь нет проблем в коде) Строки документации - должны быть определены внутри функции, то есть после
def what_ever_name():, а не раньше.
В противном случае Python help(...), а также большинство IDE не поймут его правильно. Дополнительные сведения о строках документации см. в PEP 257.
К счастью, существует множество инструментов, которые помогут сохранить единый стиль даже при разрастании проектов. Этот список в Code Review Meta предоставляет вам хорошую отправную точку для начала работы.
Как я уже говорил, я бы не рекомендовал запускать игру сразу в __init__ . даже если вы сохраните основной игровой цикл внутри класса, пользователь должен будет явно запускать игру.
Переменная-член self.currentWord не является строго необходимой. Разрешив слово в качестве входных данных для ruleOne , ruleTwo и addWord , было бы легче увидеть, что происходит.
Немного переписав, 9Можно использовать набор 0037 . Набор не допускает дублирования элементов и имеет более быстрые тесты принадлежности по сравнению со списком (постоянное время по сравнению с линейным временем).
Однако set не сохраняет порядок элементов, т. е. класс должен хранить последнее слово в переменной-члене.
Наличие last_word вместо current_word / currentWord также было бы ближе к тому, что можно было бы ожидать, глядя на правила игры.
\$\конечная группа\$
\$\начало группы\$
Я собираюсь сделать все простые улучшения, которые я смогу заметить, и вызвать их по мере продвижения; кое-что из того, что я собираюсь сказать, вероятно, будет дублировать отличные моменты, уже поднятые @AlexV.
Запуск игры при создании экземпляра объекта имеет необычный интерфейс. Я бы переименовал этот метод
mainво что-то вродеrunи вызывал функцию__main__после создания игрового объекта.Строки документации обычно заключаются в тройные двойные кавычки, а не в одинарные.
Они также обычно идут внутри функции, которую они документируют, а не перед ней, и они должны документировать внешнее поведение, а не внутреннюю реализацию (при необходимости используйте комментарии для объяснения внутренних компонентов).Избегайте ненужного состояния; ваш
currentWordиспользуется только в контексте одного хода, поэтому нет необходимости отслеживать его в вашем классе.Имя переменной и метода должно быть змеиным, а не верблюжьим.
Добавление аннотаций типов помогает проверить правильность кода.
Вместо:
если условие: вернуть Истина вернуть ложь
do:
return condition
(при условии, что условие уже является логическим значением; если вы используете аннотации типов, mypy применит это за вас)
Я думаю, что логика
воспроизведениястановится более ясной, если сгруппировать два «действительных» условия в один предикатif.
Другой способ приблизиться к этому — реализовать как rule_one, так иrule_two, чтобы возвращатьTrue, когда список пуст, чтобы вам не нужно было указывать его в специальном регистре в вызывающей программе.Неявные проверки «истины» могут привести к незаметным ошибкам, поэтому я обычно предпочитаю явные логические условия, например.
не Нетилиlen(...) > 0.
Вот код, который я получил:
#Exercise source = https://edabit.com/challenge/dLnZLi8FjaK6qKcvv
от ввода списка импорта
класс Сиритори:
"""
Класс Сиритори
Управляет действием и состоянием игры
"""
защита __init__(сам):
self.played_words: List[str] = [] # использованных слов
def rule_one(self, word: str) -> bool:
"""Определяет, совпадает ли первая буква слова с последней буквой слова."""
вернуть слово[0] == self.played_words[-1][-1]
def rule_two(self, word: str) -> bool:
"""Определяет, не было ли уже сыграно слово"""
вернуть слово не в self.
played_words
def add_word(self, word: str) -> None:
"""Добавляет текущее слово в список воспроизводимых слов"""
self.played_words.append (слово)
def play(self, word: str) -> None:
"""
Сыграйте слово, проверяя его на соответствие правилам.
Если какие-либо правила нарушены, завершите игру и перезапустите.
"""
слово = слово.нижний().полоса()
# Если еще не воспроизведено ни одного слова, это воспроизведение автоматически засчитывается.
# В противном случае он должен удовлетворять правилам один и два.
если (len(self.played_words) == 0
или self.rule_one (слово) и self.rule_two (слово)):
self.add_word(слово)
еще:
self.game_over()
def game_over(self) -> Нет:
"""распечатывает сообщение о завершении игры и сбрасывает игру"""
print("Вы проиграли. Игра перезапускается.")
self.played_words = []
def run(self) -> Нет:
"""
Основной цикл игры.
Продолжает принимать слова от пользователя и воспроизводить их в игре.
Выйдите из цикла, введя пустую строку.
"""
print("Введите слово или введите '', чтобы выйти из игры")
пока верно:
word = input("Пожалуйста, введите слово>")
самостоятельная игра (слово)
если слово == '':
перерыв
print("Спасибо за игру.")
если __name__ == '__main__':
игра = Сиритори()
игра.выполнить()
\$\конечная группа\$
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie
.
Обзор: Правила исчезновения
«Хочешь знать, куда пошла Люси? Она пошла играть в игру. Ты тоже можешь играть. Найти партнера. Найдите ключ. Найдите дорогу. У тебя есть два дня.
Что бы вы сделали, если бы вся ваша школа получила одно и то же зловещее текстовое сообщение? Я бы, наверное, пошел домой и спрятался в своей комнате, пока люди не перестанут говорить об этом, но персонажи Rules for Vanishing мало чего боятся и решают сыграть в эту жуткую игру.
Что за игра? Согласно местной легенде, речь идет о поиске Люси Гэллоус: потерянной маленькой девочки, которую в последний раз видели более 50 лет назад. Очевидно, однажды она забрела в лес, и хотя ее брат пошел ее искать, ее больше никто не видел. Действительно ли ее брат убил ее и спрятал тело? Она убежала? Или она попала в ловушку на таинственной дороге, как и многие другие до нее? Граждане Брайар-Глена, возможно, никогда не узнают об этом, но всегда будут задаваться вопросом.
То есть до тех пор, пока Бекка Донохью не пропадает, а ее сестра Сара полна решимости найти ее. Сара знает, что ее сестра все еще жива, и не верит, что она сбежала с мальчиком (несмотря на то, что заявила местная полиция после ее исчезновения). Нет, она знает, что исчезновение ее сестры каким-то образом связано с местной легендой о призраке Люси, и она полна решимости во что бы то ни стало выяснить, как все это связано.
Если вы ищете страшную книгу для чтения этой осенью, я настоятельно рекомендую добавить в свой список Rules for Vanishing . Как только я увидел описание этой книги, я понял, что должен ее прочитать, и, друзья, я был а не разочарован. Стиль письма (фальшиво-документальный) сравнивали с The Blair Witch Project (которого я никогда не видел), но это то, что действительно привлекло мое внимание.
История рассказывается с помощью ряда документов: интервью, обмен текстовыми сообщениями и электронной почтой, видеодоказательства (которые больше похожи на сценарий) и свидетельства главной героини Сары (которые написаны больше как традиционные книжные главы).

playedWords и не (self.ruleOne() или self.ruleTwo()):
self.gameOver()
еще:
self.addWord()