Ping Pong Game in Python

 Hello Guys how are you ? Hope You all are in safe and sound condition 

Welcome to my first blog on python programming on: How to make a simple Ping Pong game in python? 

So lets start 

Table tennis, also known as Ping-Pong and whiff-whaff, is a sport in which two players hit a lightweight ball, also known as the Ping-Pong ball, back and forth across a table using small rackets. ... A point is scored when a player fails to return the ball within the rules

Some Screen Shots of the game 

























This is the source code:

#Ping Pong Game By Pulastya

import turtle
import os

wn = turtle.Screen()
wn.title("Pong Game By Pulastya")
wn.bgcolor("black")
wn.setup(width=800, height=600)
wn.tracer(0)

# Score
score_a = 0
score_b = 0

# Paddle A
paddle_a = turtle.Turtle()
paddle_a.speed(0)
paddle_a.shape("square")
paddle_a.color("Green")
paddle_a.shapesize(stretch_wid=5,stretch_len=1)
paddle_a.penup()
paddle_a.goto(-350, 0)

# Paddle B
paddle_b = turtle.Turtle()
paddle_b.speed(0)
paddle_b.shape("square")
paddle_b.color("Red")
paddle_b.shapesize(stretch_wid=5,stretch_len=1)
paddle_b.penup()
paddle_b.goto(350, 0)

# Ball
ball = turtle.Turtle()
ball.speed(0)
ball.shape("circle")
ball.color("yellow")
ball.penup()
ball.goto(0, 0)
ball.dx = 0.1
ball.dy = 0.1

# Pen
pen = turtle.Turtle()
pen.speed(0)
pen.shape("square")
pen.color("white")
pen.penup()
pen.hideturtle()
pen.goto(0, 260)
pen.write("Player A: 0  Player B: 0", align="center", font=("Courier", 24, "normal"))

# Functions
def paddle_a_up():
    y = paddle_a.ycor()
    y += 20
    paddle_a.sety(y)

def paddle_a_down():
    y = paddle_a.ycor()
    y -= 20
    paddle_a.sety(y)

def paddle_b_up():
    y = paddle_b.ycor()
    y += 20
    paddle_b.sety(y)

def paddle_b_down():
    y = paddle_b.ycor()
    y -= 20
    paddle_b.sety(y)

# Keyboard bindings
wn.listen()
wn.onkeypress(paddle_a_up, "w")
wn.onkeypress(paddle_a_down, "s")
wn.onkeypress(paddle_b_up, "Up")
wn.onkeypress(paddle_b_down, "Down")

# Main game loop
while True:
    wn.update()
    
    # Move the ball
    ball.setx(ball.xcor() + ball.dx)
    ball.sety(ball.ycor() + ball.dy)

    # Border checking

    # Top and bottom
    if ball.ycor() > 290:
        ball.sety(290)
        ball.dy *= -1
        
    
    elif ball.ycor() < -290:
        ball.sety(-290)
        ball.dy *= -1
        

    # Left and right
    if ball.xcor() > 350:
        score_a += 1
        pen.clear()
        pen.write("Player A: {}  Player B: {}".format(score_a, score_b), align="center", font=("Courier", 24, "normal"))
        ball.goto(0, 0)
        ball.dx *= -1

    elif ball.xcor() < -350:
        score_b += 1
        pen.clear()
        pen.write("Player A: {}  Player B: {}".format(score_a, score_b), align="center", font=("Courier", 24, "normal"))
        ball.goto(0, 0)
        ball.dx *= -1

    # Paddle and ball collisions
    if ball.xcor() < -340 and ball.ycor() < paddle_a.ycor() + 50 and ball.ycor() > paddle_a.ycor() - 50:
        ball.dx *= -1 
       
    
    elif ball.xcor() > 340 and ball.ycor() < paddle_b.ycor() + 50 and ball.ycor() > paddle_b.ycor() - 50:
        ball.dx *= -1



CONTROLS:    Paddle A (Left) : 'W' and 'S'
                           Paddle B(Right) :'Up arrow key' and 'Down arrow key'

 Tip: To change the Speed of the ball. Just enter the speed in the highlighted portion of the code for some computers 2 is ok but for some 0.1 works well (For my PC 0.1 works well).
You can adjust it according to your need.



I am using the python IDE Thonny
 
Link for Thonny Editor Download: https://thonny.org/

Hope you Enjoyed it ! In the future blogs I  with help you with complex games like  Space Invaders, Super Mario, Donkey Kong, Contra , Battle City Tanks, Space Arena and many more...

Please Like, Share and Subscribe  
 









Comments

  1. This comment has been removed by the author.

    ReplyDelete
  2. Can you make a algorithm for playing ping pong tables with paddles.

    ReplyDelete
  3. Kèo nhà cái Macau là địa chỉ cá cược uy tín hàng đầu giữa thị trường nhà cái đầy sôi động. Truy cập ngay vào trang tỷ lệ kèo nhà cái Macau, người chơi thỏa sức đam mê với nhiều hình thức chơi khác nhau. Cùng tìm hiểu xem vì sao nhà cái Macao lại giàu sức hút như vậy.
    Ty le ma cau
    Keonhacai K8
    Ty le ca cuoc
    Bet69
    Keonhacai hom nay
    Keo Malaysia
    W88 club

    ReplyDelete

Post a Comment