Ако тражите забавну дистракцију, мешање речи је добра опција, како за играње тако и за програмирање. Покрећени Питхон-овим Ткинтер модулом, можете да направите и играте ову игру из детињства у практичној ГУИ апликацији.
Програм приказује збркану реч коју треба да преуредите у првобитни облик. Ако сте заглавили, можете кликнути на дугме Савет да бисте открили једно по једно слово. Погодите тачно реч и освојите велику победу!
Рандом и Ткинтер модул
Рандом модул је уграђени Питхон модул који се користи за генерисање псеудослучајних бројева. Помоћу овога можете генерисати насумичне бројеве, бирати насумичне елементе са листе, мешати садржај листе и још много тога.
Овај модул вам може помоћи да направите неколико типова апликација, укључујући симулацију бацања коцкица, мешање листе или генератор случајних лозинки. Можете га користити и за креирање игара као што су ручни крикет и погађање бројева.
Ткинтер вам омогућава да креирате десктоп апликације. Нуди разне виџете као што су дугмад, ознаке и оквири за текст који олакшавају развој апликација. Да бисте инсталирали Ткинтер, отворите терминал и покрените:
пип инсталл ткинтер
Како да направите игру мешања речи користећи Питхон
Можете пронаћи изворни код игре Ворд Јумбле користећи Питхон ГитХуб спремиште.
Увезите Ткинтер и Рандом модуле. Иницијализујте Ткинтер инстанцу и прикажите основни прозор. Подесите димензије у пикселима, наслов и боју позадине прозора.
из ткинтер увоз *
из насумично увоз избор
из насумично увоз мешање
корен = Тк()
роот.титле('Игра мешања речи')
роот.геометри("700к500")
роот.цонфигуре (бацкгроунд='акуа')
Дефинишите виџет ознаке да бисте приказали збркану реч. Наведите родитељски прозор у који желите да га поставите, текст који треба да прикаже, стил фонта и боју позадине. Организујте виџет и додајте му додатке.
Дефинишите функцију, схуффлер. Конфигуришите ознаку наговештаја да у почетку прикаже празан стринг и поставите глобалну променљиву наговештаја на нулу. Избришите било који садржај због ранијег извршавања програма и уместо тога прикажите стринг за унос.
ми_лабел = Ознака (роот, тект="", фонт=("Ариал", 48), бг='акуа')
ми_лабел.пацк (пади=20)
дефсхуффлер():
хинт_лабел.цонфиг (текст='')
глобално хинт_цоунт
хинт_цоунт = 0
ентри_ансвер.делете(0, КРАЈ)
ансвер_лабел.цонфиг (текст='', бг='акуа')
Дефинишите листу речи које ће служити као скуп података за игру мешања речи. Изаберите случајну реч са листе и направите листу њених појединачних слова. Промешајте листу и реформишите реч тако што ћете је понављати и чувати у низу. Прикажите збркану реч преко ознаке на екрану.
воће = ['јабука', 'банана', 'јагода', 'лубеница', 'киви']
глобално реч
реч = избор (воће)
бреак_апарт_ворд = листа (реч)
помешати (раздвојити реч)
глобално схуффлед_ворд
схуффлед_ворд = ''за писмо ин бреак_апарт_ворд:
измешана_реч += слово
ми_лабел.цонфиг (текст=промешана_реч)
Покушајте да учитате скуп речи из датотеке као екстензију за овај пројекат. Датотека речника—/уср/схаре/дицт/вордс на Линук-у/мацОС-у—је одличан извор речи.
Дефинишите функцију, одговор. Ако је реч једнака уносу корисника, прикажите победничку поруку зеленом бојом. У супротном, црвеном бојом прикажите да је то био погрешан одговор.
дефодговор():
ако ворд == ентри_ансвер.гет():
ансвер_лабел.цонфиг (текст="Тачан одговор!", бг='акуа', фг='зелен')
друго:
ансвер_лабел.цонфиг (текст=„Погрешан одговор, покушајте поново.“, бг='акуа', фг='црвено')
Дефинишите функцију, наговестити, да бисте прегледали глобални хинт_цоунт. Ако је број мањи од дужине речи, прикажите следеће слово тачног одговора. Повећајте број слова наговештаја тако да следећи пут када се функција покрене, програм ће приказати следеће слово.
дефнаговестити(број):
глобално хинт_цоунт
хинт_цоунт = број
ворд_ленгтх = лен (реч)
ако цоунт < ворд_ленгтх:
хинт_лабел.цонфиг (текст=ф'{хинт_лабел["текст"]}{ворд[цоунт]}', бг='акуа')
хинт_цоунт += 1
Дефинишите виџет за унос који ће примати унос од корисника. Одредите родитељски прозор у који желите да поставите овај виџет, заједно са његовим стилом фонта, и организујте га тако што ћете дати мало простора за довољно простора.
Дефинишите оквир за дугмад. Оквир делује као контејнер који усмерава постављање других виџета. Он уређује распоред и пружа допуну користећи правоугаоне делове на екрану. Поставите родитељски прозор у који желите да поставите оквир заједно са бојом позадине.
ентри_ансвер = Унос (роот, фонт=("Ариал", 24))
ентри_ансвер.пацк (пади=20)
буттон_фраме = Оквир (роот, бг='акуа')
буттон_фраме.пацк (пади=20)
Наведите три дугмета: једно за приказ тачног одговора, једно за одабир друге речи, а друго за приказ савета. Одредите оквир у који желите да поставите свако дугме и текст који треба да прикаже. Такође проследите функцију која ће се покренути када корисник кликне на њу, боју позадине, ширину и величину фонта.
Користити грид() менаџер да постави ова дугмад у један ред и три различите колоне. Можете одредити паддинг да бисте додали размак између дугмади.
ансвер_буттон = Дугме (буттон_фраме, тект="Одговор", цомманд=ансвер, бг='наранџаста', ширина=8, фонт=10)
ансвер_буттон.грид (ред=0, цолумн=0, падк=10)ми_буттон = Дугме (буттон_фраме, тект="Изабери другу реч", цомманд=схуффлер, бг='наранџаста', ширина=15, фонт=10)
ми_буттон.грид (ред=0, цолумн=1, падк=10)
хинт_буттон = Дугме (буттон_фраме, тект="Наговестити", цомманд=ламбда: наговештај (број_хинт), бг='наранџаста', ширина=5, фонт=10)
хинт_буттон.грид (ред=0, цолумн=2, падк=10)
Направите ознаке за одговор и наговештај. Одредите родитељски прозор у који желите да поставите ознаке, текст који треба да прикаже и стил фонта и организујте га помоћу паковање(). Проследите вредност допуне, пади, за боље постављање етикета.
ансвер_лабел = Ознака (роот, тект='', фонт=("Ариал", 22))
ансвер_лабел.пацк (пади=20)
хинт_лабел = Ознака (роот, тект='', фонт=("Ариал", 22), бг='акуа')
хинт_лабел.пацк (пади=10)
Позовите функцију схуффлер() да бисте поставили игру. Онда позови маинлооп() да покренете Ткинтер петљу догађаја и ослушкујете догађаје (као што је притискање тастера) док не затворите прозор.
схуффлер()
роот.маинлооп()
Спојите сав код и играјте игрицу Ворд Јумбле било када и било где.
Пример резултата игре мешања речи
Приликом покретања програма, он приказује измешану реч заједно са дугмадима Одговор, Одабери другу реч и Савет. Кликом на Наговестити дугме, програм приказује слова тачног одговора једно по једно. Ако унесете тачан одговор, програм приказује победничку поруку зеленом бојом.
Ако погодите погрешан одговор, програм од вас тражи да покушате поново црвеном бојом.
Игре речима које користе Питхон
Користећи Питхон можете развити широк и узбудљив спектар игара речима. Примери укључују Сцраббле, Хангман, укрштене речи, Мад Либс и анаграме. Ове игре речи могу бити засноване на терминалу или ГУИ, као што сте видели овде.
Са Ткинтер-ом можете врло лако направити ГУИ игре. Све што треба да урадите је да увезете модул, генеришете прозор, додате виџете и покренете петљу догађаја. За напредније игре можете истражити Пигаме, Киви и Панда 3Д модуле.