Color game using Tkinter in Python

16 Jul, 2020
Prerequisite : Python GUI Tkinter
TKinter is widely used for developing GUI applications. Along with applications, we can also use Tkinter GUI to develop games.
Let’s try to make a game using Tkinter. In this game player has to enter color of the word that appears on the screen and hence the score increases by one, the total time to play this game is 30 seconds. Colors used in this game are Red, Blue, Green, Pink, Black, Yellow, Orange, White, Purple and Brown. Interface will display name of different colors in different colors. Player has to identify the color and enter the correct color name to win the game. Below is the implementation of above game :
# import the modules import tkinterimport random  # list of possible colour.colours = ['Red','Blue','Green','Pink','Black',           'Yellow','Orange','White','Purple','Brown']score = 0  # the game time left, initially 30 seconds.timeleft = 30  # function that will start the game.def startGame(event):          if timeleft == 30:                  # start the countdown timer.        countdown()              # run the function to    # choose the next colour.    nextColour()  # Function to choose and# display the next colour.def nextColour():      # use the globally declared 'score'    # and 'play' variables above.    global score    global timeleft      # if a game is currently in play    if timeleft > 0:          # make the text entry box active.        e.focus_set()          # if the colour typed is equal        # to the colour of the text        if e.get().lower() == colours[1].lower():                          score += 1          # clear the text entry box.        e.delete(0, tkinter.END)                  random.shuffle(colours)                  # change the colour to type, by changing the        # text _and_ the colour to a random colour value        label.config(fg = str(colours[1]), text = str(colours[0]))                  # update the score.        scoreLabel.config(text = "Score: " + str(score))    # Countdown timer function def countdown():      global timeleft      # if a game is in play    if timeleft > 0:          # decrement the timer.        timeleft -= 1                  # update the time left label        timeLabel.config(text = "Time left: "                               + str(timeleft))                                         # run the function again after 1 second.        timeLabel.after(1000, countdown)    # Driver Code  # create a GUI windowroot = tkinter.Tk()  # set the titleroot.title("COLORGAME")  # set the sizeroot.geometry("375x200")  # add an instructions labelinstructions = tkinter.Label(root, text = "Type in the colour"                        "of the words, and not the word text!",                                      font = ('Helvetica', 12))instructions.pack()   # add a score labelscoreLabel = tkinter.Label(root, text = "Press enter to start",                                      font = ('Helvetica', 12))scoreLabel.pack()  # add a time left labeltimeLabel = tkinter.Label(root, text = "Time left: " +              str(timeleft), font = ('Helvetica', 12))                timeLabel.pack()  # add a label for displaying the colourslabel = tkinter.Label(root, font = ('Helvetica', 60))label.pack()  # add a text entry box for# typing in colourse = tkinter.Entry(root)  # run the 'startGame' function # when the enter key is pressedroot.bind('<Return>', startGame)e.pack()  # set focus on the entry boxe.focus_set()  # start the GUIroot.mainloop()
Output :
Note : Above code may not run on online IDE because of TKinter module.
Python-projects
Project
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Implementing Web Scraping in Python with BeautifulSoup
OpenCV C++ Program for Face Detection
10 Best Web Development Projects For Your Resume
Simple Chat Room using Python
Twitter Sentiment Analysis using Python
Read JSON file using Python
Python map() function
Adding new column to existing DataFrame in Pandas
Python Dictionary
How to get column names in Pandas dataframe