Следите за своими когнитивными способностями, создавая эту игру с плитками памяти.

Плитка памяти или игра на совпадение — отличный и интересный способ повысить когнитивные способности, улучшить память и улучшить концентрацию. В игре есть набор плиток, которые вы должны переворачивать одну за другой, запоминать и выбирать те, которые совпадают. Сопоставив все плитки правильно, вы выиграете игру.

Так как же разработать эту замечательную игру с помощью Python?

Tkinter и случайные модули

Вы можете создать игру тайлов памяти, используя модули Tkinter и Random. Tkinter позволяет создавать настольные приложения. Он предлагает различные виджеты, такие как кнопки, метки и текстовые поля, которые упрощают разрабатывать приложения, такие как календари, калькуляторы и списки дел. Чтобы установить Tkinter, откройте терминал и выполните:

пип установить ткинтер

Модуль Random — это встроенный модуль Python, используемый для генерации псевдослучайных чисел. Используя это, вы можете создать генератор случайных паролей

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

Как создать игру с тайлами памяти с помощью Python

Вы можете найти исходный код для создания игры тайлов памяти с использованием Python в этом Репозиторий GitHub.

Начните с импорта Tkinter и модуля Random. Инициализируйте корневое окно и установите заголовок и размеры в пикселях.

от ткинтер Импортировать *
Импортировать случайный
от ткинтер Импортировать окно сообщения

корень = Тк()
корень.заголовок(«Игра памяти»)
корень.геометрия("760x550")

Определите две глобальные переменные и инициализируйте переменную победителя нулем. Объявите список элементов, которые будут отображаться на плитках. Измените порядок списка, используя случайный модуль перемешать() метод. Определите рамку в корневом окне и добавьте отступ 10 по вертикали.

Инициализируйте переменную счетчика равным 0 и объявите список ответов и словарь соответственно.

Глобальный победитель, матчи
победитель = 0
совпадения = ["яблоко","яблоко","банан","банан", "апельсин","апельсин", "черника","черника","шелковица","шелковица", "виноград","виноград"]
random.shuffle (совпадения)
my_frame = Фрейм (корень)
my_frame.pack (pady=10)
количество = 0
список_ответов = []
ответ_дикт = {}

Определите функцию, перезагрузить(). Установите текст метки в пустую строку, используя конфиг() функция. Определите список кнопок, по одной для каждой плитки. Перейдите по списку и установите текст на плитке кнопки в пустую строку, цвет фона по умолчанию (СистемаКнопкаЛицо), а состояние к нормальному.

дефперезагрузить():
my_label.config (текст="")
button_list = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
для кнопка в кнопка_список:
button.config (текст=" ", бг=«Системная кнопка», состояние ="нормальный")

Определите функцию, победить(). Установите выигрышное сообщение в текстовом параметре метки с помощью кнопки конфиг() функция. Определите список кнопок, как и ранее, и повторите его, чтобы установить цвет фона плитки на светло-зеленый.

дефпобедить():
my_label.config (текст="Поздравляем! Ты победил!")
button_list = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
для кнопка в кнопка_список:
button.config (бг="# 90EE90")

Определите функцию, кнопка_клик() который принимает кнопку и ее номер в качестве входных параметров. Ссылка на глобальные переменные, список и словарь. Если текст кнопки равен пробелу, а количество меньше двух, вставьте и отобразите текст кнопки. Добавьте номер кнопки в список ответов и имя в словарь ответов. Увеличьте переменную count на единицу.

дефbutton_click(б, число):
Глобальный количество, ответ_список, ответ_дикт, победитель
если б["текст"] == ' 'и количество < 2:
б["текст"] = соответствует [число]
answer_list.append (число)
answer_dict[b] = соответствует [число]
количество += 1

Если длина списка ответов равна двум, это означает, что пользователь выбрал две плитки. Если текст первой плитки совпадает с текстом другой, настройте метку так, чтобы они оба отображались правильно. Переведите состояние кнопки в отключенное. Установите счетчик на ноль и очистите список и словарь. Увеличьте переменную победителя на единицу, и если она станет равной шести, вызовите объявленную ранее функцию выигрыша.

если лен (список_ответов) == 2:
если соответствует[ответ_список[0]] == соответствует[answer_list[1]]:
my_label.config (текст="Это матч!")
для ключ в ответ_дикт:
ключ["состояние"] = "неполноценный"
количество = 0
список_ответов = []
ответ_дикт = {}
победитель += 1
если победитель == 6:
победить()

В противном случае сбросьте переменную count и список. Отображение окна сообщения с заголовком и содержимым, изображающим его как неверное совпадение. Переберите список ответов и установите текст плитки на пробел. Сбросить метку и очистить словарь. Это гарантирует отсутствие видимого текста на кнопке и метке после того, как пользователь выбрал неправильные плитки.

еще:
количество = 0
список_ответов = []
messagebox.showinfo("Неправильно!", "Неправильно")
для ключ в ответ_дикт:
ключ["текст"] = " "
my_label.config (текст=" ")
ответ_дикт = {}

Определите 12 кнопок. Установите родительское окно, в которое вы хотите их поместить, текст, который они должны отображать, стиль шрифта, который они должны иметь, их высоту и ширину, а также команду, которая будет выполняться при нажатии. Не забудьте использовать лямбда-функцию для передачи данных в кнопка_клик() функция. Установить облегчение параметр для канавка для создания трехмерного эффекта глубины вокруг кнопки.

b0 = Кнопка (my_frame, text=' ', шрифт=("Гельветика", 20), высота=4, ширина =8, команда =лямбда: button_click (b0, 0), рельеф="канавка")
b1 = Кнопка (my_frame, text=' ', шрифт=("Гельветика", 20), высота=4, ширина =8, команда =лямбда: button_click (b1, 1), рельеф="канавка")
b2 = Кнопка (my_frame, text=' ', шрифт=("Гельветика", 20), высота=4, ширина =8, команда =лямбда: button_click (b2, 2), рельеф="канавка")
b3 = Кнопка (my_frame, text=' ', шрифт=("Гельветика", 20), высота=4, ширина =8, команда =лямбда: button_click (b3, 3), рельеф="канавка")
b4 = Кнопка (my_frame, text=' ', шрифт=("Гельветика", 20), высота=4, ширина =8, команда =лямбда: button_click (b4, 4), рельеф="канавка")
b5 = Кнопка (my_frame, text=' ', шрифт=("Гельветика", 20), высота=4, ширина =8, команда =лямбда: button_click (b5, 5), рельеф="канавка")
b6 = Кнопка (my_frame, text=' ', шрифт=("Гельветика", 20), высота=4, ширина =8, команда =лямбда: button_click (b6, 6), рельеф="канавка")
b7 = Кнопка (my_frame, text=' ', шрифт=("Гельветика", 20), высота=4, ширина =8, команда =лямбда: button_click (b7, 7), рельеф="канавка")
b8 = Кнопка (my_frame, text=' ', шрифт=("Гельветика", 20), высота=4, ширина =8, команда =лямбда: button_click (b8, 8), рельеф="канавка")
b9 = Кнопка (my_frame, text=' ', шрифт=("Гельветика", 20), высота=4, ширина =8, команда =лямбда: button_click (b9, 9), рельеф="канавка")
b10 = Кнопка (my_frame, text=' ', шрифт=("Гельветика", 20), высота=4, ширина =8, команда =лямбда: button_click (b10, 10), рельеф="канавка")
b11 = Кнопка (my_frame, text=' ', шрифт=("Гельветика", 20), высота=4, ширина =8, команда =лямбда: button_click (b11, 11), рельеф="канавка")

Организуйте кнопки в табличном формате, состоящем из трех строк и четырех столбцов, с помощью диспетчера сетки Tkinter. Для этого позвоните в сетка() и передайте строку вместе с номером столбца, в который вы хотите ее поместить.

b0.grid (строка =0, столбец =0)
b1.grid (строка =0, столбец =1)
b2.grid (строка =0, столбец =2)
b3.grid (строка =0, столбец =3)
b4.grid (строка =1, столбец =0)
b5.grid (строка =1, столбец =1)
b6.grid (строка =1, столбец =2)
b7.grid (строка =1, столбец =3)
b8.grid (строка =2, столбец =0)
b9.grid (строка =2, столбец =1)
b10.grid (строка =2, столбец =2)
b11.grid (строка =2, столбец =3)

Определите метку, которая показывает пустую строку, и добавьте отступ 20 в вертикальном направлении. Определите меню верхнего уровня в корневом окне и прикрепите его, повернув отрывать параметр для ЛОЖЬ. Добавьте пункт подменю, Параметры используя add_cascade параметр.

Добавьте два пункта меню вместе с командами, которые они должны выполнять при нажатии в подменю с именем Сбросить игру и Выйти из игры. Добавьте разделитель между ними для разграничения.

my_label = Метка (корень, текст ="")
my_label.pack (pady=20)

my_menu = Меню (корень)
root.config (меню=мое_меню)
option_menu = Меню (my_menu, отрыв =ЛОЖЬ)
my_menu.add_cascade (метка ="Параметры", меню=меню_параметров)
option_menu.add_command (метка=«Сбросить игру», команда=сброс)
option_menu.add_separator()
option_menu.add_command (метка=«Выход из игры», команда=root.quit)

основной цикл () Функция сообщает Python запустить цикл событий Tkinter и прослушивать события, пока вы не закроете окно.

корень.mainloop()

Соберите весь код вместе. Теперь игра с плиткой памяти готова к игре.

Результат игры с тайлами памяти

При запуске программы появляются 12 кнопок с пустым текстом вместе с Параметры меню. При нажатии Сбросить игру, окно появляется таким же образом.

При выборе двух одинаковых плиток кнопки кажутся отключенными, а метка показывает, что выбор правильный.

При выборе двух плиток, которые не совпадают, появляется окно сообщения, указывающее, что выбор был неправильным. Кнопки и метка возвращаются в исходное пустое состояние.

При успешном совпадении всех вариантов программа окрашивает все плитки в зеленый цвет и отображает выигрышное сообщение.

Игры, которые вы можете создать с помощью Python

Python предлагает множество модулей для создания игр. Для создания простых игр на основе слов или выбора, таких как «Виселица», «Крестики-нолики» или «Камень, ножницы, бумага», вы можете использовать модули Tkinter и Random. Для разработки игр, которым требуется больше графики, вы можете использовать Pygame.

Pygame — это набор модулей Python, который работает на всех платформах. Он включает компьютерную графику и звуковые библиотеки, которые делают игры более интерактивными. Некоторые из игр, которые вы можете создать с помощью Pygame, включают игру Snake, игру-головоломку и судоку.