Zbuduj grę kolorów za pomocą Tkintera w Pythonie


Battlefield2, World of Tanks, The Sims4 i Freedom Force to tylko kilka z tysięcy niesamowitych gier stworzonych w języku Python.


Tkinter, standardowy interfejs Pythona do zestawu narzędzi Tk GUI, to potężny moduł, który sprawia, że ​​tworzenie graficznych interfejsów użytkownika jest łatwe i przyjemne. Skorzystaj z tego modułu, aby opracować zaskakującą grę kolorów. Dowiedz się także, jak korzystać z modułu po drodze.


Czym jest gra kolorów?

W grze w kolory program wyświetla nazwę koloru na ekranie, ale innym kolorem czcionki. Na przykład wyświetla słowo Żółty używając czerwonego koloru czcionki, a gracz musi wpisać kolor tekstu.

Ta niezgodność informacji wraz z licznikiem czasu powoduje wiele zamieszania i zapewnia zabawne wrażenia z gry.

Moduł Tkinter i Random

Aby zbudować grę kolorów, użyjesz tkinter moduł i losowy moduł. Tkinter to wieloplatformowy, prosty i przyjazny dla użytkownika moduł GUI, którego można używać do szybkiego tworzenia graficznych interfejsów użytkownika.

Ma kilka przydatnych narzędzi, takich jak widżety etykiet i wpisów oraz menedżery układu, takie jak paczka, siatka i miejsce. Udostępnione funkcje są dość proste, co ułatwia początkującym programistom projektowanie aplikacji bez większego wysiłku. Aby zainstalować tkinter w swoim systemie, uruchom następującą komendę w terminalu:

 pip install tkinter 

Moduł losowy to wbudowana biblioteka, za pomocą której można generować losowe wybory. Korzystając z tego modułu, możesz tworzyć gry w krykieta ręcznego, gry polegające na odgadywaniu liczb, gry z magiczną ósemką, generatory losowych haseł i wiele innych.

Jak zbudować grę kolorów za pomocą Pythona

Kod źródłowy Color Game jest dostępny w repozytorium GitHub i można go bezpłatnie używać na licencji MIT.

Zacznij od zaimportowania modułu tkinter i random. Zapisz nazwy kolorów jako listę łańcuchów i zainicjuj plik wynik zmienna na 0 i pozostały czas do 60.

 from tkinter import *
import random

colours = ['Red', 'Green', 'Blue', 'Black', 'Pink', 'White', 'Purple', 'Yellow', 'Brown']
score = 0
time_remaining = 60

Zdefiniuj funkcję o nazwie RozpocznijGrę() to trwa wydarzenie jako argument wejściowy. Funkcja wykonuje dwa zadania. Najpierw sprawdza, czy pozostały czas równa się 60. Jeśli tak, wywołuje i wykonuje odliczanie() funkcjonować. Po drugie, nazywa następny kolor() funkcja, która losowo tasuje i wyświetla kolor oraz wynik w trakcie gry.

 def beginGame(event):
    if time_remaining == 60:
        countdown()
    nextColour()

Zdefiniuj funkcję o nazwie następnyKolor() i globalnie odwołuj się do zmiennych. Jeśli pozostały czas jest większy niż 0, ustaw fokus na polu wprowadzania za pomocą focus_set() metoda na etykiecie wpisu (przechowywanej w zmiennej mi) zdefiniowane w dalszej części kodu.

Użyj Dostawać() metody, aby pobrać bieżący tekst wpisu jako ciąg znaków i zamienić go na małe litery, aby uniknąć niezgodności wielkości liter. Jeśli odpowiada to kolorowi wyświetlanemu na ekranie, zwiększ wynik o jeden. Użyj usuwać() funkcję od 0 do ostatniego indeksu na widżecie wpisu, aby wyczyścić zawartość.

 def nextColour():
    global score
    global time_remaining
    if time_remaining > 0:
        e.focus_set()
        if e.get().lower() == colours[1].lower():
            score += 1
        e.delete(0, END)

Użyj człapać() służy do zmiany kolejności elementów na liście i wyświetlania etykiety koloru z tekstem jako pierwszym kolorem na liście i kolorem czcionki jako drugim kolorem na liście. Użyj konfiguracja() funkcja włączona Etykieta wyniku (która prosi o naciśnięcie Enter), aby wyświetlić wynik podczas gry.

         random.shuffle(colours)
        label.config(fg=str(colours[1]), text=str(colours[0]))
        scoreLabel.config(text="Score: " + str(score))

Zdefiniuj funkcję o nazwie odliczanie() która odwołuje się do zmiennej pozostałego czasu i zmniejsza ją o jeden. Użyj konfiguracja() funkcja na Etykieta czasu aby wyświetlić pozostały czas na ekranie i Po() funkcja do wywołania zwrotnego odliczanie funkcja po opóźnieniu 1000 milisekund lub jednej sekundy.

 def countdown():
    global time_remaining
    if time_remaining > 0:
        time_remaining -= 1
        timeLabel.config(text="Time left: " + str(time_remaining))
        timeLabel.after(1000, countdown)

Zainicjuj instancję tkintera i wyświetl okno główne. Ustaw tytuł, wymiary w pikselach i kolor tła okna.

 root = Tk()
root.title("Color Game With a Twist")
root.geometry("750x450")
root.configure(background='Orange')

Użyj Etykieta widżet instruujący gracza o instrukcji gry. Akceptuje okno nadrzędne, w którym chcesz je umieścić. W tekście należy podać rodzaj i rozmiar czcionki oraz kolor tła etykiety. Użyj Pakiet() funkcję organizowania widżetu etykiety w bloki przed umieszczeniem ich w widgecie nadrzędnym.

Podobnie zdefiniuj etykietę partytury, aby poinstruować użytkownika, aby naciskał Wchodzić aby rozpocząć grę, a także etykietę czasu, aby wyświetlić pozostały czas. Upewnij się, że wszystkie etykiety mają pomarańczowy kolor tła, aby wtapiały się w tło. Zdefiniuj pustą etykietę, która będzie zawierać nazwy kolorów w pliku następnyKolor() funkcjonować.

 instructions = Label(root, text="Type the colour of the word not the text ;)", font=('Arial', 24), bg="orange")
instructions.pack()
scoreLabel = Label(root, text="Press Enter to begin", font=('Arial', 24), bg="orange")
scoreLabel.pack()
timeLabel = Label(root, text="Time remaining: " + str(time_remaining), font=('Arial', 24), bg="orange")
timeLabel.pack()
label = Label(root, font=('Arial', 90), bg="orange")

Jak wspomniano wcześniej, użyj widżetu wejścia, aby przechwycić odpowiedź gracza. Ważnym krokiem jest powiązanie klawisza Enter ze zdarzeniem w oknie tkintera, tak aby po naciśnięciu go przez gracza została wykonana określona funkcja.

Aby to osiągnąć, należy przekazać klucz i RozpocznijGrę() działają jako parametry do wiązać() funkcjonować. Dodatkowo użyj tzw Pakiet() I focus_set() metody organizowania i ustawiania ostrości na etykiecie wejściowej po naciśnięciu klawisza Enter.

 e = Entry(font=20)
root.bind('<Return>', beginGame)
e.pack()
e.focus_set()

The główna pętla() mówi Pythonowi, aby uruchomił pętlę zdarzeń tkinter i nasłuchiwał zdarzeń (takich jak naciśnięcia przycisków), dopóki nie zamkniesz okna.

 root.mainloop() 

Połącz cały kod i masz grę kolorów z niespodzianką, gotową do gry na wyciągnięcie ręki.

Wynik gry w kolory przy użyciu Pythona

Po uruchomieniu programu Color Game na ekranie pojawia się okno. Po naciśnięciu Enter rozpoczyna się odliczanie, a gracz musi zacząć wpisywać kolor słowa. Za każdą poprawną odpowiedź wynik zwiększa się o jeden, a na końcu wyświetla wynik końcowy.

Tworzenie gier przy użyciu Pythona

Python to fantastyczny język do tworzenia gier. Język jest nie tylko łatwy do zrozumienia i użycia, ale także umożliwia twórcom gier na wszystkich poziomach doświadczenia tworzenie oszałamiających światów gier, które są interesujące i zabawne.

Dodatkowo, twórcy mają szerokie możliwości wcielania pomysłów w życie dzięki różnym dostępnym na rynku platformom do tworzenia gier, takim jak PyGame czy Kivy.



Źródło : https://www.makeuseof.com/build-color-game-using-tkinter-python/