Направите ову забавну нумеролошку игру у Питхон-у да бисте вежбали манипулацију стринговима и научили о Ткинтеру.

ФЛАМЕС је забавна игра за децу која се залажу за пријатеље, љубавнике, љубавнике, бракове и непријатеље. Игра узима имена двоје људи и низом корака одређује њихов однос. Да бисте играли ФЛАМЕС, забележите имена двоје људи, елиминишите одговарајућа слова и израчунајте број преосталих знакова.

Пређите преко слова речи, ПЛАМЕН користећи бројање и уклоните то слово. На пример, ако је број четири, уклоните слово М. Бројање почиње поново од Е. Понављајте овај процес док не остане само једно слово, које означава статус везе.

Ткинтер модул

Да бисте направили игру ФЛАМЕС, користићете Ткинтер модул. Ткинтер је вишеплатформски, једноставан и прилагођен кориснику модул који можете користити за брзо креирање графичких корисничких интерфејса. Неке од апликација које можете да направите као почетник користећи Ткинтер укључују а Музички плејер, Календар, Алат за конверзију тежине, и а Игра мешања речи.

instagram viewer

Да бисте инсталирали ткинтер у свој систем, покрените следећу команду у терминалу:

пип инсталл ткинтер

Како направити игру ФЛАМЕС користећи Питхон

Овде можете пронаћи изворни код игре ФЛАМЕС користећи Питхон ГитХуб спремиште.

Увезите Ткинтер модул. Дефинишите функцију, ремове_матцх_цхар() који прихвата две листе као улаз. Користите угнежђену фор петљу за понављање преко обе листе. Проверите да ли постоји одговарајући знак; ако постоји, уклоните је са обе листе и креирајте трећу листу која спаја обе листе са звездицом између. Звездица служи као граничник.

Вратите трећу листу заједно са подударањем пронађеним као Тачно. У случају да се ниједно слова не подударају, вратите листу као што је претходно направљено.

из ткинтер увоз *

дефремове_матцх_цхар(лист1, лист2):
за и ин опсег (лен (лист1)):
за ј ин опсег (лен (лист2)):
ако листа1[и] == листа2[ј]:
ц = листа1[и]
листа1.уклони (ц)
лист2.ремове (ц)
листа3 = листа1 + ["*"] + листа2
повратак [лист3, Истина]
листа3 = листа1 + ["*"] + листа2
повратак [лист3, Фалсе]

Дефинишите функцију, телл_статус(). Преузми име особе коју је корисник унео користећи добити() метод на виџету Унос. Претворите сва слова у мала слова и уклоните све размаке између. Претворите име у листу знакова. Поновите ово са именом друге особе и подесите наставити променљива до Истина.

дефтелл_статус():
п1 = Персон1_фиелд.гет()
п1 = п1.ловер()
п1.реплаце(" ", "")
п1_лист = листа (п1)
п2 = Персон2_фиелд.гет()
п2 = п2.ловер()
п2.реплаце(" ", "")
п2_лист = листа (п2)
наставити = Истина

Све док вредност настављања није тачна, позовите ремове_матцх_цхар() функцију и проследите две листе које сте управо креирали. Сачувајте спојену листу и статус заставице примљен од функције. Пронађите индекс звездице коју сте уметнули и исеците низове на две листе пре и после ње.

Избројите број знакова у две листе и дефинишите листу која чува различите статусе које однос може да има према игри ФЛАМЕС.

док настави:
рет_лист = ремове_матцх_цхар (п1_лист, п2_лист)
цон_лист = рет_лист[0]
наставак = рет_лист[1]
стар_индек = цон_лист.индек("*")
п1_лист = цон_лист[: стар_индек]
п2_лист = цон_лист[стар_индек + 1:]

цоунт = лен (п1_лист) + лен (п2_лист)
резултат = ["пријатељи", "Љубав", "Наклоност", "брак", "непријатељ", "браћа и сестре"]

Све док слова у листи резултата нису нула, сачувајте вредност индекса одакле морате да извршите сечење. Ако је индекс већи или једнак нули, исеците листе на два дела и сачувајте спојени стринг са десним делом додатим први по реду. Ово осигурава да можете да бројите у смеру супротном од казаљке на сату.

Уметните резултат у статусно поље на месту првог знака да бисте приказали статус односа.

док лен (резултат) > 1:
сплит_индек = (број % лен (резултат) - 1)

ако сплит_индек >= 0:
десно = резултат[сплит_индек + 1:]
лево = резултат[: сплит_индек]
резултат = десно + лево
друго:
резултат = резултат[: лен (резултат) - 1]

Статус_фиелд.инсерт(0, резултат[0])

Дефинишите функцију, избриши све(). Користите функцију делете() од првог индекса до последњег у три поља за унос да обришете садржај приказан на екрану. Користите метод фоцус_сет() на првом пољу за унос да активирате и назначите корисника да унесе вредности у њега.

дефизбриши све():
Персон1_фиелд.делете(0, КРАЈ)
Персон2_фиелд.делете(0, КРАЈ)
Статус_фиелд.делете(0, КРАЈ)
Особа1_фиелд.фоцус_сет()

Иницијализујте Ткинтер инстанцу и прикажите основни прозор тако што ћете га проследити класи. Подесите боју позадине по вашем избору, величину и наслов ваше апликације.

корен = Тк()
роот.цонфигуре (бацкгроунд='#А020Ф0')
роот.геометри("700к200")
роот.титле("ФЛАМЕС игра")

Дефинишите три ознаке које означавају две особе и њихов статус везе. Подесите родитељски прозор у који желите да их поставите, текст који треба да прикаже, боју фонта, боју позадине и стилове фонта. Додајте мало подлоге у хоризонталном правцу.

лабел1 = Ознака (роот, тект="Име 1: ", фг='#фффффф',бг='#А020Ф0', фонт=("ариал",20,"одважан"), падк='20')
лабел2 = Ознака (роот, тект="Име 2: ", фг='#фффффф',бг='#А020Ф0', фонт=("ариал",20,"одважан"), падк='20')
лабел3 = Ознака (роот, тект="Статус везе: ", фг='#фффффф', бг='#А020Ф0',фонт=("ариал",20,"одважан"), падк='20')

Користите менаџер мреже да уредите три виџета у првој колони. Ставите прву етикету у други ред, другу налепницу у трећи ред, а трећу налепницу у четврти ред.

лабел1.грид (ред=1, цолумн=0)
лабел2.грид (ред=2, цолумн=0)
лабел3.грид (ред=4, цолумн=0)

Дефинишите три виџета за унос да бисте добили вредности две особе и приказали њихов статус. Подесите родитељски прозор у који желите да поставите виџете и стилове фонта које треба да има.

Особа1_поље = Унос (роот, фонт=("ариал", 15, "одважан"))
Особа2_поље = Унос (роот, фонт=("ариал", 15, "одважан"))
Статус_фиелд = Ентри (роот, фонт=("ариал",15,"одважан"))

Слично, користите менаџер мреже да организујете виџете у другој колони. Користити ипадк својство за постављање броја пиксела који се постављају унутар граница виџета.

Особа1_поље.грид (ред=1, цолумн=1, ипадк="50")
Особа2_поље.грид (ред=2, цолумн=1, ипадк="50")
Статус_фиелд.грид (ред=4, цолумн=1, ипадк="50")

Дефинишите два дугмета, прихвати и Јасно. Подесите родитељски прозор у који желите да их поставите, текст који треба да прикаже, боју позадине, боју фонта, функције које треба да извршавају када се кликну и стилове фонта.

Користите менаџер мреже да поставите дугмад у четврти и шести ред друге колоне.

дугме1 = Дугме (роот, тект="Прихвати", бг="#00фф00", фг="црн", цомманд=телл_статус, фонт=("ариал",13,"одважан") )
буттон2 = Дугме (роот, тект="Јасно", бг="#00фф00", фг="црн", цомманд=цлеар_алл, фонт=("ариал",13,"одважан"))
дугме1.мрежа (ред=3, цолумн=1)
дугме2.мрежа (ред=5, цолумн=1)

Тхе маинлооп() функција каже Питхон-у да покрене Ткинтер петљу догађаја и ослушкује догађаје док не затворите прозор.

роот.маинлооп()

Саставите сав код и спремите се да играте игру ФЛАМЕС на дохват руке.

Пример резултата игре ФЛАМЕС

Када покренете горњи програм, програм приказује апликацију за игру ФЛАМЕС са три ознаке, три поља за унос и два дугмета распоређена у мрежи. Приликом уноса имена "Тони Старк" и "Пеппер Поттс", програм приказује њихов статус везе као "Лове".

Игре које можете да направите користећи Питхон

Пигаме, Арцаде, Панда3Д, ПиОпенГЛ и Пиглет су неки корисни модули са којима можете да правите Питхон игре. Користећи Пигаме можете да правите 2Д игре као што су Супер Марио Брос, Флаппи Бирд и Снаке. Користећи Арцаде можете да направите клон Пац-Ман, Астероидс или Бреакоут.

Панда3Д вам може помоћи да направите 3Д игре као што су Тоонтовн Онлине, Пиратес оф тхе Цариббеан Онлине и Диснеи'с Виртуал Магиц Кингдом.