summaryrefslogtreecommitdiff
path: root/timer.py
diff options
context:
space:
mode:
Diffstat (limited to 'timer.py')
-rw-r--r--timer.py89
1 files changed, 89 insertions, 0 deletions
diff --git a/timer.py b/timer.py
new file mode 100644
index 0000000..8a076d3
--- /dev/null
+++ b/timer.py
@@ -0,0 +1,89 @@
+import pygame as pg
+from pygame.locals import *
+import os
+import random as rng
+import datetime as dtm
+
+
+
+BLACK = Color("black")
+RED = Color(200, 0, 0)
+GREEN = Color(0, 200, 0)
+BLUE = Color(0, 0, 200)
+WHITE = Color("white")
+
+
+def to_hms(diff):
+ sec = int(diff.total_seconds())
+ hours = sec // 3600
+ minutes = (sec - hours * 3600) // 60
+ seconds = sec % 60
+ return hours, minutes, seconds
+
+
+def format_timer(hms):
+ hours, minutes, seconds = hms
+ return "{}:{}:{}".format(
+ str(hours).rjust(2, '0'),
+ str(minutes).rjust(2, '0'),
+ str(seconds).rjust(2, '0'),
+ )
+
+def center_place(screen_w, screen_h, surf):
+ surf_w, surf_h = surf.get_size()
+ return (
+ (screen_w - surf_w) // 2,
+ (screen_h - surf_h) // 2,
+ )
+
+pg.init()
+w, h = size = 1440, 900
+isfull = False
+screen = pg.display.set_mode(size)
+font_size = 170
+pg.display.set_caption("Таймер хакатона")
+
+title_font = pg.font.Font("Graph.ttf", 80)
+main_font = pg.font.Font("Graph.ttf", font_size)
+
+bg_color = WHITE
+bg = pg.image.load("bg.png")
+
+hackend = dtm.datetime(year=2024, month=2, day=25, hour=17, minute=0)
+
+running = True
+while running:
+ for event in pg.event.get():
+ if event.type == QUIT:
+ running = False
+
+ if event.type == KEYDOWN:
+ if event.key == K_ESCAPE:
+ running = False
+ if event.key == K_SPACE:
+ if isfull:
+ pg.display.set_mode(size, 0)
+ isfull = False
+ else:
+ pg.display.set_mode(size, FULLSCREEN)
+ isfull = True
+
+ screen.fill(BLACK)
+ screen.blit(bg, (0, 0))
+
+
+ now = dtm.datetime.now()
+ diff = hackend - now
+ hms = to_hms(diff)
+ timer_txt = format_timer(hms)
+ text = main_font.render(timer_txt, True, WHITE)
+ text_place = center_place(*size, text)
+ screen.blit(text, text_place)
+
+ title = title_font.render("До конца хакатона", True, WHITE)
+ title_place = center_place(*size, title)
+ title_place = (title_place[0], title_place[1] - 170)
+ screen.blit(title, title_place)
+
+ pg.display.flip()
+