How To Make Ping Pong In Python

How To Make Ping Pong In Python

Last modified: October 9, 2023

How to Make Ping Pong in Python

Python is a powerful programming language that can be used to create a wide range of applications. One fun project that you can try out is creating a ping pong game using Python. In this tutorial, we will walk you through the steps to make a basic version of the game.

Setting Up the Environment

Before we start coding, make sure you have Python installed on your computer. You can download the latest version of Python from the official website, Once you have Python installed, you will also need to install some additional packages. Open your command prompt or terminal and run the following commands:

pip install pygame
pip install random

We will be using the `pygame` library to create the game window and handle user input. The `random` library will be used to generate random numbers for the movement of the ball.

Creating the Game Window

To create the game window, we need to import the `pygame` library and initialize it. Here’s the code to get started:

import pygame

# Initialize pygame

# Set up the game window
window_width = 800
window_height = 400
window = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption(“Ping Pong”)

The code above imports the `pygame` module and initializes it. It also sets up the dimensions of the game window and sets a caption for the window.

Adding the Paddle and Ball

Now, let’s add the paddle and ball to the game. The paddle will be controlled by the user, and the ball will move around the screen. Here’s the code to create the paddle and ball objects:

# Set up the paddle
paddle_width = 20
paddle_height = 100
paddle_x = 20
paddle_y = (window_height – paddle_height) // 2
paddle_speed = 5

# Set up the ball
ball_radius = 10
ball_x = window_width // 2
ball_y = window_height // 2
ball_dx = 3
ball_dy = 3

The code above defines the dimensions and initial positions of the paddle and ball. It also sets the speed of the paddle and the initial movement of the ball.

Handling User Input

Next, we need to handle user input to control the movement of the paddle. We will use the arrow keys to move the paddle up and down. Here’s the code to handle user input:

# Game loop
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

keys = pygame.key.get_pressed()

if keys[pygame.K_UP] and paddle_y > 0:
paddle_y -= paddle_speed
if keys[pygame.K_DOWN] and paddle_y < window_height - paddle_height: paddle_y += paddle_speed window.fill((0, 0, 0)) pygame.draw.rect(window, (255, 255, 255), (paddle_x, paddle_y, paddle_width, paddle_height)), (255, 255, 255), (ball_x, ball_y), ball_radius) pygame.display.flip() pygame.quit() ``` The code above sets up a game loop that keeps running until the user closes the game window. Inside the loop, we check for user input using the `pygame.event.get()` function. We then check if the arrow keys are pressed and update the position of the paddle accordingly.

Animating the Ball

To make the game more interesting, let’s animate the ball by updating its position every frame. Here’s the code to animate the ball:

# Game loop
running = True
while running:
# …

ball_x += ball_dx
ball_y += ball_dy

# Check for collisions with walls
if ball_y < ball_radius or ball_y > window_height – ball_radius:
ball_dy *= -1

# Check for collisions with paddle
if ball_x < paddle_x + paddle_width and ball_y > paddle_y and ball_y < paddle_y + paddle_height: ball_dx *= -1 # ... pygame.display.flip() pygame.quit() ``` The code above updates the position of the ball in each frame by adding `ball_dx` and `ball_dy` to `ball_x` and `ball_y`, respectively. We also check for collisions with the walls and the paddle. If the ball hits the walls or the paddle, its direction will be reversed.


Congratulations! You have successfully created a basic version of the ping pong game using Python and the `pygame` library. Feel free to experiment and add more features to the game, such as keeping score or adding sound effects. Keep practicing and exploring different ways to enhance your Python programming skills. Have fun playing your very own creation of ping pong in Python!

Additional Ping-Pong Resources:
Table Tennis Girl is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program that helps website admins earn advertising fees by linking to We only earn a commission if you purchase an item from The prices on Amazon do not change (either way) if you reach them via our links.