Reputation: 757
I've been trying to add code to my script pong.py below to measure the time the screen stays open and closes. I am having problems running pygame, so I would like to find a way to calculate this time interval without using pygame. I've looked at several issues here in stack.overflow but none really account for the time my python screen program stays open. And some answers have pygame, and I'm avoiding pygame for getting error messages.
pong.py:
# Simple Pong in Python 3 for Beginners
# By @TokyoEdTech
# Part 5: Colliding with the paddles
import turtle
wn = turtle.Screen()
wn.title("Pong by @TokyoEdTech")
wn.bgcolor("black")
wn.setup(width=800, height=600)
wn.tracer(0)
# Paddle A
paddle_a = turtle.Turtle()
paddle_a.speed(0)
paddle_a.shape("square")
paddle_a.color("white")
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("white")
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("square")
ball.color("white")
ball.penup()
ball.goto(0, 0)
ball.dx = 2
ball.dy = -2
# Function
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 binding
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
if ball.ycor() > 290:
ball.sety(290)
ball.dy *= -1
if ball.ycor() < -290:
ball.sety(-290)
ball.dy *= -1
if ball.xcor() > 390:
ball.goto(0, 0)
ball.dx *= -1
if ball.xcor() < -390:
ball.goto(0, 0)
ball.dx *= -1
# Paddle and ball collisions
if (ball.xcor() > 340 and ball.xcor() < 350) and (ball.ycor() < paddle_b.ycor() + 40 and ball.ycor() > paddle_b.ycor() -40):
ball.setx(340)
ball.dx *= -1
if (ball.xcor() < -340 and ball.xcor() > -350) and (ball.ycor() < paddle_a.ycor() + 40 and ball.ycor() > paddle_a.ycor() -40):
ball.setx(-340)
ball.dx *= -1
UPDATE
SAMPLE
I meant while I was with the screen open, for example if it was a game I should count the time while I keep the program open.
I'd like a way to make it work within the script, but I'm also interested in command lines.
Upvotes: 0
Views: 194
Reputation: 1112
Have you tried this good sir?
import turtle
import time
start_time = time.time()
#Set up the screen
try:
wn = turtle.Screen()
wn.bgcolor("black")
wn.title("Test")
wn.bgpic("grid.png")
print("Execution time : %s seconds " % (str(time.time() - start_time)))
except Exception as e:
print("Program exited by error",e)
print("Execution time : %s seconds " % (str(time.time() - start_time)))
Upvotes: 1
Reputation: 150
Hello,
There are many ways to know the execution time of a program in Python.
I will mention the two easy and common ways :-
time is a library in python used to manipulate and play with time.
import time
start = time.time()
...
...
print(time.time() - start)
If you execute programs from the command line, you can try this.
$ time python3 code.py
This line gives a basic information of how much time is being taken by the system to run the code.
Upvotes: 1