Om du letar efter en rolig distraktion är ordblandning ett bra alternativ, både att spela och programmera. Drivs av Pythons Tkinter-modul kan du bygga och spela detta barndomsspel i en bekväm GUI-app.
Programmet visar ett blandat ord som du behöver ordna om till sin ursprungliga form. Om du har fastnat kan du klicka på Tips-knappen för att avslöja en bokstav i taget. Gissa ordet rätt och vinn stort!
Random och Tkinter-modulen
Random-modulen är en inbyggd Python-modul som används för att generera pseudoslumptal. Med detta kan du generera slumpmässiga tal, välja slumpmässiga element från en lista, blanda innehållet i en lista och mer.
Den här modulen kan hjälpa dig att bygga flera typer av appar, inklusive en simulering av tärningskast, en listblandare eller en slumpmässig lösenordsgenerator. Du kan också använda den för att skapa spel som hand cricket och gissning av siffror.
Tkinter låter dig skapa skrivbordsapplikationer. Den erbjuder en mängd olika widgets som knappar, etiketter och textrutor som gör det lättare att utveckla appar. För att installera Tkinter, öppna en terminal och kör:
pip installera tkinter
Hur man bygger Word Jumble-spel med Python
Du kan hitta källkoden för Word Jumble Game med Python i detta GitHub-förråd.
Importera modulerna Tkinter och Random. Initiera Tkinter-instansen och visa rotfönstret. Ställ in måtten i pixlar, titeln och bakgrundsfärgen för fönstret.
från tkinter importera *
från slumpmässig importera val
från slumpmässig importera blanda
root = Tk()
root.title("Word Jumble Game")
root.geometry("700x500")
root.configure (bakgrund="aqua")
Definiera en etikettwidget för att visa det blandade ordet. Ange det överordnade fönstret du vill placera det i, texten det ska visa, typsnittsstilen och bakgrundsfärgen. Organisera widgeten och lägg till lite utfyllnad till den.
Definiera en funktion, shuffler. Konfigurera tipsetiketten för att visa en tom sträng initialt och ställ in den globala tipsvariabeln till noll. Ta bort allt innehåll på grund av att programmet körts tidigare och visa en inmatningssträng istället.
my_label = Etikett (root, text="", typsnitt=("Arial", 48), bg="aqua")
my_label.pack (pady=20)
defshuffler():
hint_label.config (text='')
global hint_count
hint_count = 0
entry_answer.delete(0, SLUTET)
answer_label.config (text='', bg="aqua")
Definiera en lista med ord som kommer att fungera som datauppsättning för ordvirrspelet. Välj ett slumpmässigt ord från listan och gör en lista över dess enskilda bokstäver. Blanda listan och reformera ordet genom att iterera över det och lagra det i en sträng. Visa det blandade ordet via etiketten på skärmen.
frukter = ['äpple', 'banan', "jordgubbe", 'vattenmelon', 'kiwi']
global ord
ord = val (frukter)
break_apart_word = lista (ord)
blanda (break_apart_word)
global blandat_ord
blandat_ord = ''för brev i break_apart_word:
blandat_ord += bokstav
my_label.config (text=shuffled_word)
Prova att ladda en uppsättning ord från en fil som ett tillägg till det här projektet. Ordboksfilen—/usr/share/dict/words på Linux/macOS—är en utmärkt källa till ord.
Definiera en funktion, svar. Om ordet motsvarar inmatningen av användaren, visa ett vinnande meddelande i grön färg. Annars, visa att det var fel svar i röd färg.
defsvar():
om word == entry_answer.get():
answer_label.config (text="Rätt svar!", bg="aqua", fg='grön')
annan:
answer_label.config (text="Fel svar, försök igen.", bg="aqua", fg='röd')
Definiera en funktion, antydan, för att inspektera det globala hint_count. Om antalet är mindre än ordets längd, visa nästa bokstav i det korrekta svaret. Öka antalet ledtrådsbokstav så att nästa gång funktionen körs kommer programmet att visa nästa bokstav.
defantydan(räkna):
global hint_count
hint_count = räkna
word_length = len (ord)
om count < word_length:
hint_label.config (text=f'{hint_label["text"]}{antal ord]}', bg="aqua")
hint_count += 1
Definiera en ingångswidget för att ta emot input från användaren. Ange det överordnade fönstret du vill placera den här widgeten i, tillsammans med dess teckensnittsstil, och organisera det genom att ge lite utfyllnad för gott om utrymme.
Definiera en ram för knapparna. En ram fungerar som en behållare som styr placeringen av andra widgets. Den ordnar layouten och ger utfyllnad med hjälp av rektangulära sektioner på skärmen. Ställ in det överordnade fönstret du vill placera ramen i tillsammans med bakgrundsfärgen.
entry_answer = Entry (root, font=("Arial", 24))
entry_answer.pack (pady=20)
button_frame = Ram (root, bg="aqua")
button_frame.pack (pady=20)
Deklarera tre knappar: en för att visa rätt svar, en för att välja ett annat ord och den andra för att visa tips. Ange den ram du vill placera varje knapp i och texten som den ska visa. Skicka också funktionen som ska köras när användaren klickar på den, bakgrundsfärg, bredd och teckenstorlek.
Använd rutnät() manager för att placera dessa knappar i en rad och tre olika kolumner. Du kan ange utfyllnad för att lägga till utrymme mellan knapparna.
answer_button = Knapp (button_frame, text="Svar", kommando=svar, bg='orange', bredd=8, teckensnitt=10)
answer_button.grid (rad=0, kolumn=0, padx=10)my_button = Knapp (button_frame, text="Välj ett annat ord", kommando=shuffler, bg='orange', bredd=15, teckensnitt=10)
my_button.grid (rad=0, kolumn=1, padx=10)
hint_button = Knapp (button_frame, text="Antydan", kommando=lambda: hint (hint_count), bg='orange', bredd=5, teckensnitt=10)
hint_button.grid (rad=0, kolumn=2, padx=10)
Skapa etiketter för svaret och tipset. Ange det överordnade fönstret du vill placera etiketterna i, texten den ska visa och typsnittsstilen och organisera den med packa(). Skicka ett utfyllnadsvärde, pady, för bättre placering av etiketterna.
answer_label = Etikett (root, text='', typsnitt=("Arial", 22))
answer_label.pack (pady=20)
hint_label = Etikett (root, text='', typsnitt=("Arial", 22), bg="aqua")
hint_label.pack (pady=10)
Anropa shuffler()-funktionen för att ställa in spelet. Ring sedan mainloop() för att köra Tkinter-händelsslingan och lyssna efter händelser (som knapptryckningar) tills du stänger fönstret.
shuffler()
root.mainloop()
Sätt ihop all kod och spela Word Jumble Game när som helst, var som helst.
Exempel på utdata från Word Jumble Game
När programmet körs visar det ett blandat ord tillsammans med knapparna Svar, Välj ett annat ord och Tips. När du klickar på Antydan knappen visar programmet bokstäverna i det korrekta svaret en efter en. Om du anger rätt svar visar programmet det vinnande meddelandet i grönt.
Om du gissar fel svar ber programmet dig att försöka igen i röd färg.
Ordspel med Python
Med Python kan du utveckla ett brett och spännande utbud av ordspel. Exempel inkluderar Scrabble, Hangman, korsord, Mad Libs och anagram. Dessa ordspel kan vara terminalbaserade eller GUI-baserade, som du har sett här.
Med Tkinter kan du göra GUI-spel väldigt enkelt. Allt du behöver göra är att importera modulen, skapa ett fönster, lägga till widgets och köra händelseslingan. För mer avancerade spel kan du utforska Pygame, Kivy och Panda 3D-moduler.