import turtle # Set up the screen screen = turtle.Screen() screen.title("Pong Game") screen.bgcolor("black") screen.setup(width=800, height=600) screen.tracer(0) # Left paddle left_paddle = turtle.Turtle() left_paddle.shape("square") left_paddle.color("white") left_paddle.shapesize(stretch_wid=6, stretch_len=1) left_paddle.penup() left_paddle.goto(-350, 0) # Right paddle right_paddle = turtle.Turtle() right_paddle.shape("square") right_paddle.color("white") right_paddle.shapesize(stretch_wid=6, stretch_len=1) right_paddle.penup() right_paddle.goto(350, 0) # Ball ball = turtle.Turtle() ball.shape("circle") ball.color("white") ball.penup() ball.dx = 2 ball.dy = 2 # Move paddles def left_paddle_up(): if left_paddle.ycor() < 250: left_paddle.sety(left_paddle.ycor() + 20) def left_paddle_down(): if left_paddle.ycor() > -240: left_paddle.sety(left_paddle.ycor() - 20) def right_paddle_up(): if right_paddle.ycor() < 250: right_paddle.sety(right_paddle.ycor() + 20) def right_paddle_down(): if right_paddle.ycor() > -240: right_paddle.sety(right_paddle.ycor() - 20) # Keyboard bindings screen.listen() screen.onkeypress(left_paddle_up, "w") screen.onkeypress(left_paddle_down, "s") screen.onkeypress(right_paddle_up, "Up") screen.onkeypress(right_paddle_down, "Down") # Ball movement function def move_ball(): global ball ball.setx(ball.xcor() + ball.dx) ball.sety(ball.ycor() + ball.dy) # Bounce off top and bottom walls if ball.ycor() > 290 or ball.ycor() < -290: ball.dy *= -1 # Bounce off paddles if (ball.xcor() > 340 and ball.xcor() < 350) and ( ball.ycor() < right_paddle.ycor() + 50 and ball.ycor() > right_paddle.ycor() - 50): ball.dx *= -1 if (ball.xcor() < -340 and ball.xcor() > -350) and ( ball.ycor() < left_paddle.ycor() + 50 and ball.ycor() > left_paddle.ycor() - 50): ball.dx *= -1 # Reset ball if it goes out of bounds if ball.xcor() > 390 or ball.xcor() < -390: ball.goto(0, 0) ball.dx *= -1 screen.update() screen.ontimer(move_ball, 10) # Start game move_ball() screen.mainloop()