--- /dev/null
+#!/usr/bin/env python
+
+"""Go timer"""
+
+import os
+import sys
+import time
+import argparse
+
+import pygame
+
+class Timer:
+ def __init__(self):
+ self._last = 0
+ self._elapsed = 0.
+
+ def get_time(self):
+ if self._last > 0:
+ return time.time() - self._last + self._elapsed
+ else:
+ return self._elapsed
+
+ def start(self):
+ self._last = time.time()
+
+ def stop(self):
+ self._elapsed += time.time() - self._last
+ self._last = 0
+
+ def is_running(self):
+ if self._last > 0:
+ return True
+ else:
+ return False
+
+pygame.init()
+pygame.display.set_mode((400, 100))
+pygame.display.set_caption("Go timer")
+screen = pygame.display.get_surface()
+
+clock = pygame.time.Clock()
+
+font = pygame.font.Font(None, 50)
+
+done = False
+first = True
+
+timers = (Timer(), Timer())
+
+while not done:
+
+ for event in pygame.event.get():
+ if event.type == pygame.QUIT:
+ done = True
+ elif event.type == pygame.KEYDOWN:
+ if first:
+ timers[0].start()
+ first = False
+ continue
+ for timer in timers:
+ if timer.is_running():
+ timer.stop()
+ else:
+ timer.start()
+
+ screen.fill([0, 0, 0])
+ text1 = font.render("{0:>6.2f}".format(timers[0].get_time()), True, [128, 255, 128])
+ screen.blit(text1, [10, 10])
+ text2 = font.render("{0:>6.2f}".format(timers[1].get_time()), True, [128, 255, 128])
+ screen.blit(text2, [200, 10])
+ pygame.display.flip()
+ clock.tick(15)