Open In App
Related Articles

Color game using Tkinter in Python

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

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.

Prerequisite: Python GUI Tkinter

Below is the implementation of the above game: 

Python

# import the modules
import tkinter
import 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 window
root = tkinter.Tk()
 
# set the title
root.title("COLORGAME")
 
# set the size
root.geometry("375x200")
 
# add an instructions label
instructions = tkinter.Label(root, text = "Type in the colour"
                        "of the words, and not the word text!",
                                      font = ('Helvetica', 12))
instructions.pack()
 
# add a score label
scoreLabel = tkinter.Label(root, text = "Press enter to start",
                                      font = ('Helvetica', 12))
scoreLabel.pack()
 
# add a time left label
timeLabel = tkinter.Label(root, text = "Time left: " +
              str(timeleft), font = ('Helvetica', 12))
               
timeLabel.pack()
 
# add a label for displaying the colours
label = tkinter.Label(root, font = ('Helvetica', 60))
label.pack()
 
# add a text entry box for
# typing in colours
e = tkinter.Entry(root)
 
# run the 'startGame' function
# when the enter key is pressed
root.bind('<Return>', startGame)
e.pack()
 
# set focus on the entry box
e.focus_set()
 
# start the GUI
root.mainloop()

                    

Output :

Note: Above code may not run on online IDE because of TKinter module.

Code Explanation:

  1. The code starts by importing the necessary modules.
  2. The tkinter module provides the basic interface for creating graphical user interfaces in Python.
  3. Next, the colors variable stores a list of six colours, as well as a score variable.
  4. The startGame() function is called when the game starts.
  5. This function initializes some variables and sets up the game play.
  6. First, it checks to see if time has expired (in which case the game is over).
  7. If time hasn’t expired, then it runs the countdown() function to keep track of how much time is left in the game.
  8. Finally, it sets up two labels—one to display the current time left and another to display the player’s score.
  9. Next, we create a driver code block that creates and displays a window onscreen.
  10. We set its title and size before adding an instructions label to it.
  11. The instructions label contains text that tells players what they need to do in order to play this game: type in one of six colour values into the text entry box below it, not just word text!
  12. After you type in your colour value, hit enter key on your keyboard to submit it and begin playing!
  13. The code creates a window that has the title “COLORGAME” and a label for instructions.
  14. The window is 375×200 pixels in size, and the label is added to the window at (0, 0).
  15. The next section of code sets up some variables.
  16. The first variable, ‘colours’, stores an array of six colours: Red, Blue, Green, Pink, Black, and Yellow.
  17. The second variable, ‘score’, stores the current score of the game.
  18. The third variable, ‘timeleft’, keeps track of how much time is left in the game.
  19. The next section of code creates a function called ‘startGame’.
  20. This function will be used to start the game timer when it is clicked on by the user.


Last Updated : 11 Dec, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads