Skip to content
Menu
Daniel J. Pierce
  • C#
  • Games
  • Graphics
  • Math
  • Python
  • Tynker
  • Unity
Daniel J. Pierce

Pong

Posted on September 5, 2019November 11, 2019

Restart Game

AWSD controls left

Arrows control right

Made in tynker.com, the Python 1 course, not cross-platform compatible but source code is below

This is pong, not much to say.

import turtle, random, math
screen =  turtle.Screen()
screen.bgcolor("black") 
screen.delay(0) 
screen.register_shape('paddle',((-30, -10), (-30, 10), (30, 10), (30, -10)))

sprite =  turtle.Turtle()
sprite.penup()
sprite.speed(0)
sprite.color("white")
sprite.ht() 
paddle1 = sprite.clone()
paddle1.shape("paddle")
paddle1.st()
paddle2 = paddle1.clone()
paddle1.goto(160, 0)
paddle2.goto(-160, 0)

puck = sprite.clone()
puck.shape("circle")
puck.goto(0, 0)
puck.seth(0)
puck.st()

speed = 5
edge = 200
dx = random.uniform(0.5, 1) * speed
dy = ((speed ** 2) - (dx ** 2)) ** 0.5

def check_collided(paddle):
    if math.fabs(paddle.xcor() - puck.xcor()) < 15 and math.fabs(paddle.ycor() - puck.ycor()) < 35:
        return True
    return False

def right_up():
    if edge - paddle1.ycor() > 30:
        paddle1.goto(paddle1.xcor(), paddle1.ycor() + 20)
        
def right_down():
    if edge + paddle1.ycor() > 30:
        paddle1.goto(paddle1.xcor(), paddle1.ycor() - 20)
        
def left_up():
    if edge - paddle2.ycor() > 30:
        paddle2.goto(paddle2.xcor(), paddle2.ycor() + 20)

def left_down(): 
    if edge + paddle2.ycor() > 30:
        paddle2.goto(paddle2.xcor(), paddle2.ycor() - 20)
 
screen.onkey(right_up, "Up") 
screen.onkey(right_down, "Down")
screen.onkey(left_up, "W")
screen.onkey(left_down, "S")
screen.listen()

def update():
    global dx, dy
    x = puck.xcor()
    y = puck.ycor()
    if math.fabs(x) > edge:  
        x=300
    elif check_collided(paddle1) or check_collided(paddle2):
        dx = -dy
    elif math.fabs(y) > edge:
        dy = -dy
    
    puck.goto(x + dx, y + dy)
    screen.ontimer(update, 10)

update()

Projects

  • Procedure Platforming
  • Particle Simulator
  • AP Computer Science Paint Program
  • Maybe Good Platformer
  • Custom Gravity Test
  • Triangle Types
  • Unity Obstacle Course v1
  • Collapsing rows
  • Java Tic Tac Toe (No AI)
  • Mersenne Prime Tester
  • Rainbow
  • Pong
  • Simple Tkinter Calculator
  • Hexidecimal Converter
  • Snake eats apple
  • Protect the Galactic Empire
  • Hangman
  • Beautiful Colorful Thing
  • Four Dots
  • Frogga
  • Escape asteroids
  • Portals
  • Guess the Number 2.0
  • Illogical
  • Tic Tac Toe
  • Guess the Number
  • Ultimate Calculator 1.0.0a0
  • Prime Number Tester
  • Number Base Converter 2.0a0
  • Number Base Converter 1.1
  • Python Equation Calculator
©2025 Daniel J. Pierce | WordPress Theme by Superb WordPress Themes