diff --git a/pysweeper.exe b/pysweeper.exe index 38b1f11..c35be76 100644 Binary files a/pysweeper.exe and b/pysweeper.exe differ diff --git a/pysweeper.py b/pysweeper.py index 0a76407..ce7c582 100644 --- a/pysweeper.py +++ b/pysweeper.py @@ -1,6 +1,6 @@ from sys import exit -from utilities import Board, Button, pygame, screen, sec_to_time +from utilities import Board, Button, Smiley, pygame, screen, sec_to_time class Pysweeper: @@ -12,6 +12,9 @@ def __init__(self, width: int, height: int, bombs: int) -> None: self._flags = 0 self._question_marks = 0 self._board = Board(width, height, bombs) + self._smiley = Smiley(x=(self._board._left_offset - 32 + + 32*self._width//2), + y=(self._board._top_offset - 64)) self._time = 0 def run(self) -> None: @@ -33,6 +36,7 @@ def run(self) -> None: screen.fill((255, 255, 255)) self._board.draw() + self._smiley.draw(screen) mouse_pos = pygame.mouse.get_pos() mouse_x = (mouse_pos[0] - self._board._left_offset) // 32 diff --git a/utilities.py b/utilities.py index 171be80..1f8cd2c 100644 --- a/utilities.py +++ b/utilities.py @@ -186,6 +186,59 @@ def reveal(self, x: int, y: int) -> None: self.reveal(x + i, y + j) +class Smiley: + def __init__(self, x: int, y: int) -> None: + self._x = x + self._y = y + self._is_in_awe = False + self._is_dead = False + self._is_cool = False + self._sprite = None + + def draw(self, screen: pygame.Surface) -> None: + if self._is_in_awe: + self._sprite = sprites["smiley_wow"] + elif self._is_dead: + self._sprite = sprites["smiley_rip"] + elif self._is_cool: + self._sprite = sprites["smiley_yeah"] + else: + self._sprite = sprites["smiley"] + self._sprite = pygame.transform.scale(self._sprite, (64, 64)) + screen.blit(self._sprite, (self._x, self._y)) + + def set_in_awe(self) -> None: + self._is_in_awe = True + self._is_dead = False + self._is_cool = False + + def set_dead(self) -> None: + self._is_in_awe = False + self._is_dead = True + self._is_cool = False + + def set_cool(self) -> None: + self._is_in_awe = False + self._is_dead = False + self._is_cool = True + + def is_in_awe(self) -> bool: + return self._is_in_awe + + def is_dead(self) -> bool: + return self._is_dead + + def is_cool(self) -> bool: + return self._is_cool + + def set_position(self, x: int, y: int) -> None: + self._x = x + self._y = y + + def get_position(self) -> Tuple[int]: + return (self._x, self._y) + + class Button: def __init__(self, x: int, y: int, width: int, height: int,