<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
- <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (word-hunt)" project-jdk-type="Python SDK" />
+ <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (venv)" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
<excludeFolder url="file://$MODULE_DIR$/Main/venv" />
<excludeFolder url="file://$MODULE_DIR$/venv" />
</content>
- <orderEntry type="jdk" jdkName="Python 3.10 (word-hunt)" jdkType="Python SDK" />
+ <orderEntry type="jdk" jdkName="Python 3.10 (venv)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
from board import Board
from word_connector import WordConnector
from words_display import UnknownWordDisplay
+from timer import Timer
class Game:
font = pygame.font.Font("font/Silkscreen-Regular.ttf", 40)
self.word_connector = WordConnector()
self.bg_colour = Colour.LIGHT_GRAY
self.unknown_word_display = UnknownWordDisplay((SCREEN_WIDTH*2/3-UnknownWordDisplay.inset,self.board.position.y),self.word_frequency)
+ self.timer = Timer(self.unknown_word_display.position + pygame.Vector2(0, self.unknown_word_display.get_rect().height/2 + self.word_disp_separation_distance))
def update(self, delta):
self.word += self.board.update(delta, self.bg_colour, self.points)
self.bg_colour = self.correct_colour
self.word_display = self.font.render(self.word, True, Colour.BLACK)
+ self.timer.update(delta)
def draw(self, surf):
surf.fill(Palette.primary_shade1)
self.word_connector.draw(surf)
self.unknown_word_display.draw(surf)
-
+ self.timer.draw(surf)
# pygame.draw.circle(surf, Colour.WHITE,r.center,5)
# pygame.draw.line(surf, Colour.BLACK, (0, SCREEN_HEIGHT / 2), (SCREEN_WIDTH, SCREEN_HEIGHT / 2))
# pygame.draw.line(surf, Colour.BLACK, (SCREEN_WIDTH / 2, 0), (SCREEN_WIDTH / 2, SCREEN_HEIGHT))
from setup import *
from game import Game
-puzzle = f"puzzles/PuzzlePack{4}/puzzle{10}.txt"
+puzzle = f"puzzles/PuzzlePack{4}/puzzle{12}.txt"
print(puzzle)
scene = Game(puzzle)
--- /dev/null
+from setup import *
+
+
+class Timer:
+ font = pygame.font.Font("font/Silkscreen-Regular.ttf", 30)
+
+ def __init__(self, position):
+ self.position = pygame.Vector2(position)
+ self.time = 120 # 120 seconds
+ self.text = self.font.render(f"{self.time//60}:{'%.2f' % (self.time % 60)}",True,Colour.BLACK)
+
+ def update(self,delta):
+ self.time = max(0, self.time - delta/1000)
+ mins, secs = divmod(int(self.time), 60)
+ timer = '{:02d}:{:02d}'.format(mins, secs)
+ self.text = self.font.render(f"{timer}",True,Colour.BLACK)
+
+ def draw(self, surf):
+ surf.blit(self.text, self.text.get_rect(topleft =self.position))