Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

Als je op zoek bent naar een leuke afleiding, is woordjumble een goede optie, zowel om te spelen als om te programmeren. Aangedreven door de Tkinter-module van Python, kun je dit kinderspel bouwen en spelen in een handige GUI-app.

Het programma geeft een door elkaar gegooid woord weer dat u in zijn oorspronkelijke vorm moet herschikken. Als je vastzit, kun je op de hintknop klikken om letter voor letter te onthullen. Raad het juiste woord en win groots!

De Random- en Tkinter-module

De Random-module is een ingebouwde Python-module die wordt gebruikt voor het genereren van pseudo-willekeurige getallen. Hiermee kun je willekeurige getallen genereren, willekeurige elementen uit een lijst kiezen, de inhoud van een lijst in willekeurige volgorde afspelen en meer.

Deze module kan u helpen bij het bouwen van verschillende soorten apps, waaronder een simulatie van een dobbelsteenworp, een lijstschudder of een

instagram viewer
willekeurige wachtwoordgenerator. Je kunt het ook gebruiken om games te maken zoals handkrekel en getallen raden.

Met Tkinter kunt u desktop-applicaties maken. Het biedt een verscheidenheid aan widgets zoals knoppen, labels en tekstvakken die het gemakkelijker maken om apps te ontwikkelen. Om Tkinter te installeren, opent u een terminal en voert u het volgende uit:

pip installeer tkinter

Hoe Word Jumble Game te bouwen met behulp van Python

Hierin vind je de broncode van het Word Jumble Game mbv Python GitHub-opslagplaats.

Importeer de Tkinter- en Random-modules. Initialiseer de Tkinter-instantie en geef het hoofdvenster weer. Stel de afmetingen in pixels, de titel en de achtergrondkleur van het venster in.

van tkinter importeren *
van willekeurig importeren keuze
van willekeurig importeren schudden

wortel = Tk()
hoofdmap.titel('Word Rommelspel')
root.geometry("700x500")
root.configure (achtergrond='water')

Definieer een labelwidget om het verwarde woord weer te geven. Specificeer het bovenliggende venster waarin u het wilt plaatsen, de tekst die het moet weergeven, de letterstijl en de achtergrondkleur. Organiseer de widget en voeg wat opvulling toe.

Definieer een functie, schudder. Configureer het hintlabel om aanvankelijk een lege tekenreeks weer te geven en stel de globale hintvariabele in op nul. Verwijder alle inhoud vanwege de eerdere uitvoering van het programma en geef in plaats daarvan een invoertekenreeks weer.

mijn_label = Label (hoofdmap, tekst="", lettertype=("Ariel", 48), bg='water')
mijn_label.pack (pady=20)

defschudder():
hint_label.config (tekst='')
globaal hint_count
hint_count = 0
entry_answer.delete(0, EINDE)
antwoord_label.config (tekst='', bg='water')

Definieer een lijst met woorden die zullen dienen als dataset voor het woordrommelspel. Selecteer een willekeurig woord uit de lijst en maak een lijst van de afzonderlijke letters. Schud de lijst en hervorm het woord door erover te itereren en het in een string op te slaan. Geef het verwarde woord weer via het label op het scherm.

 fruit = ['appel', 'banaan', 'aardbei', 'watermeloen', 'kiwi']
globaal woord
woord = keuze (fruit)
break_apart_word = lijst (woord)
shuffle (break_apart_word)
globaal geschud_woord
geschud_woord = ''

voor brief in break_apart_word:
geschud_woord += letter

mijn_label.config (tekst=shuffled_word)

Probeer een reeks woorden uit een bestand te laden als een extensie voor dit project. Het woordenboekbestand - /usr/share/dict/words op Linux/macOS - is een uitstekende bron van woorden.

Definieer een functie, antwoord. Als het woord gelijk is aan de invoer door de gebruiker, geef dan een winnend bericht weer in groene kleur. Laat anders in het rood zien dat het het verkeerde antwoord was.

defantwoord():
als woord == entry_answer.get():
antwoord_label.config (tekst="Goed antwoord!", bg='water', fg='groente')
anders:
antwoord_label.config (tekst="Verkeerd antwoord, probeer het opnieuw.", bg='water', fg='rood')

Definieer een functie, wenk, om de globale hint_count te inspecteren. Als het aantal kleiner is dan de lengte van het woord, geeft u de volgende letter van het juiste antwoord weer. Verhoog het aantal hintletters zodat de volgende keer dat de functie wordt uitgevoerd, het programma de volgende letter weergeeft.

defwenk(graaf):
globaal hint_count
hint_count = tellen
word_length = len (woord)

als aantal < woord_lengte:
hint_label.config (tekst=F'{hint_label["tekst"]}{Aantal woorden]}', bg='water')
hint_count += 1

Definieer een invoerwidget om invoer van de gebruiker te ontvangen. Geef het bovenliggende venster op waarin u deze widget wilt plaatsen, samen met de lettertypestijl, en organiseer het door wat opvulling te geven voor voldoende ruimte.

Definieer een kader voor de knoppen. Een frame fungeert als een container die de plaatsing van andere widgets stuurt. Het rangschikt de lay-out en zorgt voor opvulling met behulp van rechthoekige secties op het scherm. Stel het bovenliggende venster in waarin u het frame wilt plaatsen, samen met de achtergrondkleur.

entry_answer = Invoer (root, font=("Ariel", 24))
entry_answer.pack (pady=20)

button_frame = Frame (hoofdmap, bg='water')
button_frame.pack (pady=20)

Declareer drie knoppen: één om het juiste antwoord weer te geven, één om een ​​ander woord te kiezen en de andere om hints weer te geven. Specificeer het kader waarin u elke knop wilt plaatsen en de tekst die erin moet worden weergegeven. Geef ook de functie door die moet worden uitgevoerd wanneer de gebruiker erop klikt, de achtergrondkleur, breedte en lettergrootte.

Gebruik de rooster() manager om deze knoppen in één rij en drie verschillende kolommen te plaatsen. U kunt opvulling specificeren om ruimte tussen de knoppen toe te voegen.

answer_button = Knop (button_frame, text="Antwoord", commando=antwoord, bg='oranje', breedte=8, lettertype=10)
answer_button.grid (rij=0, kolom=0, padx=10)

my_button = Knop (button_frame, text="Kies een ander woord", commando=shuffler, bg='oranje', breedte=15, lettertype=10)
mijn_knop.grid (rij=0, kolom=1, padx=10)

hint_button = Knop (button_frame, text="Tip", opdracht=lambda: hint (hint_count), bg='oranje', breedte=5, lettertype=10)
hint_button.grid (rij=0, kolom=2, padx=10)

Maak labels voor het antwoord en de hint. Geef het bovenliggende venster op waarin u de labels wilt plaatsen, de tekst die moet worden weergegeven en de lettertypestijl, en organiseer het met behulp van pak(). Geef een opvulwaarde door, padie, voor een betere plaatsing van de labels.

answer_label = Label (hoofdmap, tekst='', lettertype=("Ariel", 22))
antwoord_label.pack (pady=20)

hint_label = Label (hoofdmap, tekst='', lettertype=("Ariel", 22), bg='water')
hint_label.pack (pady=10)

Roep de functie shuffler() aan om het spel op te zetten. Bel dan Hoofdlus() om de Tkinter-gebeurtenisloop uit te voeren en te luisteren naar gebeurtenissen (zoals het indrukken van een knop) totdat u het venster sluit.

schudder()
root.mainloop()

Zet alle code bij elkaar en speel het Word Jumble Game altijd en overal.

Voorbeelduitvoer van het Word Jumble-spel

Bij het uitvoeren van het programma wordt een geschud woord weergegeven samen met de knoppen Antwoorden, Kies een ander woord en Hint. Bij het klikken op de Tip knop, toont het programma de letters van het juiste antwoord één voor één. Als u het juiste antwoord invoert, geeft het programma het winnende bericht in groen weer.

Als je het verkeerde antwoord raadt, vraagt ​​het programma je om het opnieuw te proberen in rode kleur.

Woordspelletjes met behulp van Python

Met Python kun je een breed en spannend aanbod aan woordspelletjes ontwikkelen. Voorbeelden zijn Scrabble, Hangman, kruiswoordpuzzels, Mad Libs en anagrammen. Deze woordspelletjes kunnen terminalgebaseerd of GUI-gebaseerd zijn, zoals je hier hebt gezien.

Met Tkinter kun je heel gemakkelijk GUI-spellen maken. Het enige wat u hoeft te doen is de module importeren, een venster genereren, widgets toevoegen en de gebeurtenislus uitvoeren. Voor meer geavanceerde spellen kun je de 3D-modules Pygame, Kivy en Panda verkennen.