Læsere som dig hjælper med at støtte MUO. Når du foretager et køb ved hjælp af links på vores websted, kan vi optjene en affiliate-kommission. Læs mere.

Hvis du leder efter en sjov distraktion, er ordvirvl en god mulighed, både at spille og programmere. Drevet af Pythons Tkinter-modul kan du bygge og spille dette barndomsspil i en praktisk GUI-app.

Programmet viser et rodet ord, som du skal omarrangere til dets oprindelige form. Hvis du sidder fast, kan du klikke på Tip-knappen for at afsløre et bogstav ad gangen. Gæt ordet rigtigt og vind stort!

Random og Tkinter-modulet

Random-modulet er et indbygget Python-modul, der bruges til at generere pseudo-tilfældige tal. Med dette kan du generere tilfældige tal, vælge tilfældige elementer fra en liste, blande indholdet af en liste og mere.

Dette modul kan hjælpe dig med at bygge flere typer app, herunder en terningkast-simulering, en listeblander eller en tilfældig adgangskodegenerator. Du kan også bruge det til at lave spil som f.eks hånd cricket og tal gætte.

Tkinter giver dig mulighed for at oprette desktop-applikationer. Det tilbyder en række widgets som knapper, etiketter og tekstbokse, der gør det nemmere at udvikle apps. For at installere Tkinter skal du åbne en terminal og køre:

pip installer tkinter

Sådan bygger du Word Jumble-spil ved hjælp af Python

Du kan finde kildekoden til Word Jumble Game ved hjælp af Python i dette GitHub-depot.

Importer modulerne Tkinter og Random. Initialiser Tkinter-forekomsten og vis rodvinduet. Indstil dimensionerne i pixels, titlen og baggrundsfarven for vinduet.

fra tkinter importere *
fra tilfældig importere valg
fra tilfældig importere blande

root = Tk()
root.title('Word Jumble Game')
root.geometry("700x500")
root.configure (baggrund='aqua')

Definer en etiket-widget for at vise det rodede ord. Angiv det overordnede vindue, du vil placere det i, den tekst, det skal vise, skrifttypestilen og baggrundsfarven. Organiser widgetten og tilføj noget polstring til den.

Definer en funktion, blander. Konfigurer tipetiketten til at vise en tom streng indledningsvis, og indstil den globale tipvariabel til nul. Slet alt indhold på grund af programmets udførelse tidligere, og vis en indtastningsstreng i stedet.

my_label = Etiket (rod, tekst="", skrifttype=("Arial", 48), bg='aqua')
my_label.pack (pady=20)

defblander():
hint_label.config (text='')
global hint_count
hint_count = 0
entry_answer.delete(0, SLUT)
answer_label.config (text='', bg='aqua')

Definer en liste over ord, der vil fungere som datasættet for ordvirvarspillet. Vælg et tilfældigt ord fra listen, og lav en liste over dets individuelle bogstaver. Bland listen og reformer ordet ved at gentage det og gemme det i en streng. Vis det rodede ord via etiketten på skærmen.

 frugter = ['æble', 'banan', 'jordbær', 'vandmelon', 'kiwi']
global ord
ord = valg (frugter)
break_apart_word = liste (ord)
bland (break_apart_word)
global blandet_ord
blandet_ord = ''

til brev i break_apart_word:
blandet_ord += bogstav

my_label.config (text=shuffled_word)

Prøv at indlæse et sæt ord fra en fil som en udvidelse til dette projekt. Ordbogsfilen—/usr/share/dict/words på Linux/macOS—er en fremragende kilde til ord.

Definer en funktion, svar. Hvis ordet svarer til brugerens input, så vis en vindende besked i grøn farve. Ellers skal du vise, at det var det forkerte svar i rød farve.

defsvar():
hvis word == entry_answer.get():
answer_label.config (text="Rigtigt svar!", bg='aqua', fg='grøn')
andet:
answer_label.config (text="Forkert svar, prøv venligst igen.", bg='aqua', fg='rød')

Definer en funktion, antydning, for at inspicere den globale hint_count. Hvis antallet er mindre end ordets længde, skal du vise det næste bogstav i det rigtige svar. Øg antallet af tipbogstavet, så næste gang funktionen kører, vil programmet vise det næste bogstav.

defantydning(tælle):
global hint_count
hint_count = antal
word_længde = len (ord)

hvis tælle < word_længde:
hint_label.config (text=f'{hint_label["tekst"]}{ord[antal]}', bg='aqua')
hint_count += 1

Definer en Entry-widget for at modtage input fra brugeren. Angiv det overordnede vindue, du vil placere denne widget i, sammen med dens skrifttype, og organiser det ved at give noget polstring for rigelig plads.

Definer en ramme for knapperne. En ramme fungerer som en beholder, der styrer placeringen af ​​andre widgets. Det arrangerer layoutet og giver polstring ved hjælp af rektangulære sektioner på skærmen. Indstil det overordnede vindue, du vil placere rammen i, sammen med baggrundsfarven.

entry_answer = Indgang (rod, skrifttype=("Arial", 24))
entry_answer.pack (pady=20)

button_frame = Ramme (rod, bg='aqua')
button_frame.pack (pady=20)

Angiv tre knapper: en til at vise det rigtige svar, en til at vælge et andet ord, og den anden til at vise tip. Angiv den ramme, du vil placere hver knap i, og den tekst, den skal vise. Send også funktionen til at køre, når brugeren klikker på den, baggrundsfarven, bredden og skriftstørrelsen.

Brug gitter() manager til at placere disse knapper i en række og tre forskellige kolonner. Du kan angive polstring for at tilføje mellemrum mellem knapperne.

answer_button = Knap (knapramme, tekst="Svar", kommando=svar, bg='orange', bredde=8, skrifttype=10)
answer_button.grid (række=0, kolonne=0, padx=10)

my_button = Knap (knapramme, tekst="Vælg et andet ord", kommando=shuffler, bg='orange', bredde=15, skrifttype=10)
my_button.grid (række=0, kolonne=1, padx=10)

hint_button = Knap (knapramme, tekst="Antydning", kommando=lambda: hint (hint_count), bg='orange', bredde=5, skrifttype=10)
hint_button.grid (række=0, kolonne=2, padx=10)

Lav etiketter til svaret og tippet. Angiv det overordnede vindue, du vil placere etiketterne i, den tekst, det skal vise, og skrifttypestilen, og organiser det vha. pakke(). Send en udfyldningsværdi, pady, for bedre placering af etiketterne.

answer_label = Etiket (rod, tekst='', skrifttype=("Arial", 22))
answer_label.pack (pady=20)

hint_label = Etiket (rod, tekst='', skrifttype=("Arial", 22), bg='aqua')
hint_label.pack (pady=10)

Kald shuffler()-funktionen for at sætte spillet op. Så ring mainloop() at køre Tkinter event loop og lytte efter begivenheder (såsom knaptryk), indtil du lukker vinduet.

shuffler()
root.mainloop()

Sæt al koden sammen og spil Word Jumble Game når som helst og hvor som helst.

Eksempel på output fra Word Jumble Game

Når programmet kører, viser det et blandet ord sammen med knapperne Svar, Vælg et andet ord og Tip. Ved at klikke på Antydning knappen, viser programmet bogstaverne i det rigtige svar et efter et. Hvis du indtaster det rigtige svar, viser programmet vindermeddelelsen med grønt.

Hvis du gætter det forkerte svar, beder programmet dig om at prøve igen i rød farve.

Ordspil ved hjælp af Python

Ved at bruge Python kan du udvikle et bredt og spændende udvalg af ordspil. Eksempler inkluderer Scrabble, Hangman, krydsord, Mad Libs og anagrammer. Disse ordspil kan være terminalbaserede eller GUI-baserede, som du har set her.

Med Tkinter kan du meget nemt lave GUI-spil. Alt du skal gøre er at importere modulet, generere et vindue, tilføje widgets og køre begivenhedsløkken. For mere avancerede spil kan du udforske Pygame, Kivy og Panda 3D-moduler.