Create pong game using Python – Turtle

11 Jun, 2021
Pong is one of the most famous arcade games, simulating table tennis. Each player controls a paddle in the game by dragging it vertically across the screen’s left or right side. Players use their paddles to strike back and forth on the ball.
Turtle is an inbuilt graphic module in Python. It uses a panel and pen to depict illustrations. 
Below are the steps used:
Step 1) Create two paddles A and B on the left and right side of the screen.
Step 2) Create a ball.
Step 3) Create an event to move the paddle vertically on pressing a certain key.
Step 4) Create the function to update the score after each player misses a collision.
Below is the program to create Paddle and Ball:
Python3
# Import required libraryimport turtle # Create screensc = turtle.Screen()sc.title("Pong game")sc.bgcolor("white")sc.setup(width=1000, height=600)  # Left paddleleft_pad = turtle.Turtle()left_pad.speed(0)left_pad.shape("square")left_pad.color("black")left_pad.shapesize(stretch_wid=6, stretch_len=2)left_pad.penup()left_pad.goto(-400, 0)  # Right paddleright_pad = turtle.Turtle()right_pad.speed(0)right_pad.shape("square")right_pad.color("black")right_pad.shapesize(stretch_wid=6, stretch_len=2)right_pad.penup()right_pad.goto(400, 0)  # Ball of circle shapehit_ball = turtle.Turtle()hit_ball.speed(40)hit_ball.shape("circle")hit_ball.color("blue")hit_ball.penup()hit_ball.goto(0, 0)hit_ball.dx = 5hit_ball.dy = -5
Output:
Below is the complete python program to create pong game using turtle library.
Python
# Import required libraryimport turtle  # Create screensc = turtle.Screen()sc.title("Pong game")sc.bgcolor("white")sc.setup(width=1000, height=600)  # Left paddleleft_pad = turtle.Turtle()left_pad.speed(0)left_pad.shape("square")left_pad.color("black")left_pad.shapesize(stretch_wid=6, stretch_len=2)left_pad.penup()left_pad.goto(-400, 0)  # Right paddleright_pad = turtle.Turtle()right_pad.speed(0)right_pad.shape("square")right_pad.color("black")right_pad.shapesize(stretch_wid=6, stretch_len=2)right_pad.penup()right_pad.goto(400, 0)  # Ball of circle shapehit_ball = turtle.Turtle()hit_ball.speed(40)hit_ball.shape("circle")hit_ball.color("blue")hit_ball.penup()hit_ball.goto(0, 0)hit_ball.dx = 5hit_ball.dy = -5  # Initialize the scoreleft_player = 0right_player = 0  # Displays the scoresketch = turtle.Turtle()sketch.speed(0)sketch.color("blue")sketch.penup()sketch.hideturtle()sketch.goto(0, 260)sketch.write("Left_player : 0    Right_player: 0",             align="center", font=("Courier", 24, "normal"))  # Functions to move paddle verticallydef paddleaup():    y = left_pad.ycor()    y += 20    left_pad.sety(y)  def paddleadown():    y = left_pad.ycor()    y -= 20    left_pad.sety(y)  def paddlebup():    y = right_pad.ycor()    y += 20    right_pad.sety(y)  def paddlebdown():    y = right_pad.ycor()    y -= 20    right_pad.sety(y)  # Keyboard bindingssc.listen()sc.onkeypress(paddleaup, "e")sc.onkeypress(paddleadown, "x")sc.onkeypress(paddlebup, "Up")sc.onkeypress(paddlebdown, "Down")  while True:    sc.update()     hit_ball.setx(hit_ball.xcor()+hit_ball.dx)    hit_ball.sety(hit_ball.ycor()+hit_ball.dy)     # Checking borders    if hit_ball.ycor() > 280:        hit_ball.sety(280)        hit_ball.dy *= -1     if hit_ball.ycor() < -280:        hit_ball.sety(-280)        hit_ball.dy *= -1     if hit_ball.xcor() > 500:        hit_ball.goto(0, 0)        hit_ball.dy *= -1        left_player += 1        sketch.clear()        sketch.write("Left_player : {}    Right_player: {}".format(                      left_player, right_player), align="center",                      font=("Courier", 24, "normal"))     if hit_ball.xcor() < -500:        hit_ball.goto(0, 0)        hit_ball.dy *= -1        right_player += 1        sketch.clear()        sketch.write("Left_player : {}    Right_player: {}".format(                                 left_player, right_player), align="center",                                 font=("Courier", 24, "normal"))     # Paddle ball collision    if (hit_ball.xcor() > 360 and                        hit_ball.xcor() < 370) and                        (hit_ball.ycor() < right_pad.ycor()+40 and                        hit_ball.ycor() > right_pad.ycor()-40):        hit_ball.setx(360)        hit_ball.dx*=-1            if (hit_ball.xcor()<-360 and                       hit_ball.xcor()>-370) and                       (hit_ball.ycor()<left_pad.ycor()+40 and                        hit_ball.ycor()>left_pad.ycor()-40):        hit_ball.setx(-360)        hit_ball.dx*=-1
Output:
varshagumber28
Python-projects
Python-turtle
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python Dictionary
Different ways to create Pandas Dataframe
Enumerate() in Python
Read a file line by line in Python
Python String | replace()
How to Install PIP on Windows ?
*args and **kwargs in Python
Python Classes and Objects
Iterate over a list in Python
Python OOPs Concepts