Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

Ако търсите забавно разсейване, бъркотията с думи е добър вариант както за игра, така и за програмиране. Осъществено от модула Tkinter на Python, можете да създавате и играете тази детска игра в удобно GUI приложение.

Програмата показва объркана дума, която трябва да пренаредите в оригиналната й форма. Ако сте блокирали, можете да щракнете върху бутона Подсказка, за да разкриете буква по буква. Познайте думата правилно и спечелете много!

Модулът Random и Tkinter

Модулът Random е вграден модул на Python, използван за генериране на псевдослучайни числа. С това можете да генерирате произволни числа, да избирате произволни елементи от списък, да разбърквате съдържанието на списък и др.

Този модул може да ви помогне да създадете няколко типа приложения, включително симулация на хвърляне на зарове, разбъркване на списъци или генератор на произволни пароли

instagram viewer
. Можете също да го използвате за създаване на игри като ръчен крикет и отгатване на числа.

Tkinter ви позволява да създавате настолни приложения. Той предлага разнообразие от приспособления като бутони, етикети и текстови полета, които улесняват разработването на приложения. За да инсталирате Tkinter, отворете терминал и стартирайте:

pip инсталирайте tkinter

Как да създадете игра на Word Jumble с помощта на Python

Тук можете да намерите изходния код на Word Jumble Game, използвайки Python GitHub хранилище.

Импортирайте модулите Tkinter и Random. Инициализирайте екземпляра на Tkinter и покажете основния прозорец. Задайте размерите в пиксели, заглавието и цвета на фона на прозореца.

от tkinter импортиране *
от случаен импортиране избор
от случаен импортиране разбъркване

корен = Tk()
root.title(„Игра на смесване на думи“)
root.geometry("700x500")
root.configure (background="аква")

Дефинирайте приспособление за етикети, за да покажете обърканата дума. Посочете родителския прозорец, в който искате да го поставите, текста, който трябва да показва, стила на шрифта и цвета на фона. Организирайте джаджата и добавете някаква подложка към нея.

Дефинирайте функция, разбърквач. Конфигурирайте етикета на подсказката, за да показва първоначално празен низ и задайте глобалната променлива на подсказката на нула. Изтрийте всяко съдържание поради по-ранно изпълнение на програмата и вместо това покажете въведен низ.

my_label = Етикет (корен, текст="", шрифт=("Arial", 48), bg="аква")
my_label.pack (pady=20)

дефразбърквач():
hint_label.config (текст='')
глобален hint_count
hint_count = 0
entry_answer.delete(0, КРАЙ)
answer_label.config (текст='', bg="аква")

Дефинирайте списък с думи, които ще служат като набор от данни за играта на смесване на думи. Изберете произволна дума от списъка и направете списък с отделните й букви. Разбъркайте списъка и реформирайте думата, като я повторите и я съхраните в низ. Покажете обърканата дума чрез етикета на екрана.

 плодове = ["ябълка", "банан", "ягода", "диня", "киви"]
глобален дума
дума = избор (плодове)
break_apart_word = списък (дума)
разбъркване (break_apart_word)
глобален разбъркана_дума
разбъркана_дума = ''

за писмо в break_apart_word:
разбъркана_дума += буква

my_label.config (текст=разбъркана_дума)

Опитайте да заредите набор от думи от файл като разширение към този проект. Файлът с речник - /usr/share/dict/words на Linux/macOS - е отличен източник на думи.

Дефинирайте функция, отговор. Ако думата е равна на въведената от потребителя, тогава покажете печелившо съобщение в зелен цвят. В противен случай покажете, че това е грешен отговор в червен цвят.

дефотговор():
ако дума == entry_answer.get():
answer_label.config (текст="Правилен отговор!", bg="аква", fg="зелено")
друго:
answer_label.config (текст=„Грешен отговор, моля, опитайте отново.“, bg="аква", fg='червен')

Дефинирайте функция, намек, за да проверите глобалния hint_count. Ако броят е по-малък от дължината на думата, покажете следващата буква от верния отговор. Увеличете броя на подсказващата буква, така че при следващото изпълнение на функцията програмата да покаже следващата буква.

дефнамек(броя):
глобален hint_count
hint_count = брой
дума_дължина = len (дума)

ако брой hint_label.config (текст=е'{hint_label["текст"]}{брой думи]}', bg="аква")
hint_count += 1

Дефинирайте изпълним модул Entry, за да вземете информация от потребителя. Посочете родителския прозорец, в който искате да поставите тази джаджа, заедно със стила на шрифта и я организирайте, като дадете малко подложка за достатъчно място.

Определете рамка за бутоните. Рамката действа като контейнер, насочващ разположението на други уиджети. Той подрежда оформлението и осигурява подложка с помощта на правоъгълни секции на екрана. Задайте родителския прозорец, в който искате да поставите рамката, заедно с цвета на фона.

entry_answer = Запис (корен, шрифт=("Arial", 24))
entry_answer.pack (pady=20)

button_frame = Рамка (корен, bg="аква")
button_frame.pack (pady=20)

Декларирайте три бутона: един за показване на правилния отговор, един за избор на друга дума, а другият за показване на съвети. Посочете рамката, в която искате да поставите всеки бутон, и текста, който трябва да показва. Също така предайте функцията, която да се изпълнява, когато потребителят щракне върху нея, цвета на фона, ширината и размера на шрифта.

Използвай мрежа () мениджър да постави тези бутони в един ред и три различни колони. Можете да зададете подложка, за да добавите разстояние между бутоните.

answer_button = Бутон (button_frame, text="Отговор", команда=отговор, bg='портокал', ширина=8, шрифт=10)
answer_button.grid (ред=0, колона=0, padx=10)

my_button = Бутон (button_frame, text=„Избери друга дума“, команда=разбъркване, bg='портокал', ширина=15, шрифт=10)
my_button.grid (ред=0, колона=1, padx=10)

hint_button = Бутон (button_frame, text="подсказка", команда=ламбда: съвет (hint_count), bg='портокал', ширина=5, шрифт=10)
hint_button.grid (ред=0, колона=2, padx=10)

Създайте етикети за отговора и подсказката. Посочете родителския прозорец, в който искате да поставите етикетите, текста, който трябва да показва, и стила на шрифта и го организирайте с пакет(). Предава стойност за подплънка, пади, за по-добро разположение на етикетите.

answer_label = Етикет (корен, текст='', шрифт=("Arial", 22))
answer_label.pack (pady=20)

hint_label = Етикет (корен, текст='', шрифт=("Arial", 22), bg="аква")
hint_label.pack (pady=10)

Извикайте функцията shuffler(), за да настроите играта. Тогава се обадете mainloop() за да стартирате цикъла на събитията на Tkinter и да слушате за събития (като натискания на бутони), докато затворите прозореца.

разбъркване ()
root.mainloop()

Съберете целия код заедно и играйте Word Jumble Game по всяко време и навсякъде.

Примерен изход от играта на Word Jumble

При стартиране на програмата тя показва разбъркана дума заедно с бутоните Отговор, Избор на друга дума и Подсказка. При щракване върху Подсказка бутон, програмата показва буквите на верния отговор една по една. Ако въведете правилния отговор, програмата показва печелившото съобщение в зелено.

Ако познаете грешен отговор, програмата ви моли да опитате отново в червен цвят.

Игри с думи, използващи Python

С помощта на Python можете да разработите широка и вълнуваща гама от игри с думи. Примерите включват Scrabble, Hangman, кръстословици, Mad Libs и анаграми. Тези игри с думи могат да бъдат базирани на терминал или GUI, както видяхте тук.

С Tkinter можете да правите GUI игри много лесно. Всичко, което трябва да направите, е да импортирате модула, да генерирате прозорец, да добавите уиджети и да стартирате цикъла на събитията. За по-напреднали игри можете да изследвате модулите Pygame, Kivy и Panda 3D.