Exemple #1
0
def main():
    apple = Fruit("Apple", 1.50, 3)
    banana = Fruit("Banana", 2.50, 1)
    book = Book(70, "The Witcher", "SNNF343249A")
    price_calculator = PriceCalculator()

    price_for_apples = apple.accept(price_calculator)
    price_for_bananas = banana.accept(price_calculator)
    price_for_books = book.accept(price_calculator)
Exemple #2
0
 def __init__(self):
     min = Point(0, 10)
     max = Point(self.width - 1, self.height - 1)
     pyxel.init(self.width, self.height, caption=self.title, fps=18)
     pyxel.load("my_resource.pyxres")
     self.snake = Snake(self.width / 2, self.height / 2)
     self.fruits = [
         Fruit(min, max, 8),
         Fruit(min, max, 9),
         Fruit(min, max, 10)
     ]
     self.direction = Direction()
     self._reset()
     pyxel.run(self.update, self.draw)
Exemple #3
0
def restart():
    global points, is_dead, snake_obj, fruit_obj

    points = 0
    is_dead = False
    snake_obj = Snake()
    fruit_obj = Fruit()
Exemple #4
0
    def play(self):
        while not self.game_over:
            self.clock.tick(self.FPS)
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    self.game_over = True
                    break
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_ESCAPE:
                        self.game_over = True
                        break
                    if event.key in (pygame.K_LEFT, pygame.K_RIGHT, pygame.K_DOWN, pygame.K_UP):
                        self.direction = self.dir[event.key]

            self.snake.move(self.direction, self.width, self.height, self.status_height)

            if self.snake.collision():
                self.show_game_over()
                pygame.time.delay(3000)
                continue

            if self.snake.eat(self.fruit):
                self.fruit = Fruit(self.snake, self.width, self.height, self.status_height)
                self.score += 10
                if len(self.snake.snake) % 5 == 0:
                    self.level += 1
                    self.FPS += 10

            self.screen.fill((0, 0, 0))
            self.screen.fill((0, 0, 255), (0, 0, self.width, 15))
            self.show_status()
            self.fruit.draw(self.screen)
            self.snake.draw(self.screen)
            pygame.display.flip()
Exemple #5
0
    def __init__(self):
        pygame.init()
        self.screen = pygame.display.set_mode((716, 793 + 60))
        pygame.display.set_caption("Pacman Portal")

        self.bricks = Group()
        self.shields = Group()
        self.powerpills = Group()
        self.qpills = Group()
        self.maze = Maze(self.screen,
                         self.bricks,
                         self.shields,
                         self.powerpills,
                         self.qpills,
                         brickfile='square',
                         mazefile='images/pacmanportalmaze.txt',
                         shieldfile='shield',
                         powerpill='powerpill')

        self.increase = False
        self.scoreboard = Scorebord(self.screen, self)
        self.pacman = Pacman(self.screen, self.scoreboard, self)
        self.play_button = Button(self.screen, "PLAY GAME", 80 / 100)
        self.score_button = Button(self.screen, "HIGH SCORES", 90 / 100)
        self.menu = Menu()
        self.audio = Audio()
        self.fruit = Fruit(self.screen)
        self.blinky = Blinky(self.screen, self.pacman, self.scoreboard)
        self.inky = Inky(self.screen, self.pacman, self.scoreboard)
        self.pinky = Pinky(self.screen, self.pacman, self.scoreboard)
        self.clyde = Clyde(self.screen, self.pacman, self.scoreboard)
        self.oportal = Portal('o', self.pacman)
        self.bportal = Portal('b', self.pacman)
        self.active = False
        self.pause = False
Exemple #6
0
    def __init__(self, width, height, rows=20):
        pygame.init()
        pygame.font.init()
        self.width = width
        self.height = height
        self.rows = rows
        self.score = 0
        self.entities = []
        self.spacing_x = self.width // self.rows
        self.spacing_y = (self.height // 10 * 9) // self.rows
        self.game = True
        self.clock = pygame.time.Clock()
        self.score_font = pygame.font.Font(None, 50)
        with open(os.path.join("snake-game", "high_score.txt"), "r") as file:
            self.high_score = int(file.read())

        self.snake = Snake(body=[], rows=self.rows)
        self.entities.append(self.snake)
        self.fruit = Fruit(rows=self.rows)
        self.entities.append(self.fruit)

        pygame.display.set_caption("Snake Game")

        self.window = pygame.display.set_mode((self.width, self.height))
        self.score_surface = pygame.Surface((self.width, self.height // 10))
        self.game_surface = pygame.Surface((self.width, self.height // 10 * 9))

        self.game_loop()
 def checkPelletEvents(self):
     pellet = self.pacman.eatPellets(self.pellets.pelletList)
     if pellet:
         self.eat_sound.set_volume(0.2)
         self.eat_sound.play()
         self.pelletsEaten += 1
         self.score += pellet.points
         if self.pelletsEaten == 25 or self.pelletsEaten == 150:
             if self.fruit is None:
                 self.fruit = Fruit(self.nodes, self.sheet, "cherry")
         if self.pelletsEaten == 75:
             if self.portal is None:
                 self.portal = Portal(self.nodes, self.sheet)
             if self.portal2 is None:
                 self.portal2 = Portal(self.nodes, self.sheet)
         if self.pelletsEaten == 125:
             if self.portal3 is None:
                 self.portal3 = Portal2(self.nodes, self.sheet)
             if self.portal4 is None:
                 self.portal4 = Portal2(self.nodes, self.sheet)
         self.pellets.pelletList.remove(pellet)
         if pellet.name == "powerpellet":
             self.ghosts.resetPoints()
             self.ghosts.freightMode()
         if self.pellets.isEmpty():
             self.pacman.visible = False
             self.ghosts.hide()
             self.pause.startTimer(3, "clear")
             self.flashBackground = True
Exemple #8
0
  def __init__(self):

    # initialize the objects we are going to need
    self.window=Window() 

    self.body= Body()

    # attaches body to head
    self.head= Head(self.body)

    self.fruit=Fruit()

    self.scoreboard= ScoreBoard()

    # Main gmae loop
    while True:

      # updates the game constantly
      self.window.screen.update()

      # listen for key press
      self.window.screen.listen()

      # treats keypress
      self.window.screen.onkey(self.head.go_up, "Up")
      self.window.screen.onkey(self.head.go_down, "Down")
      self.window.screen.onkey(self.head.go_right, "Right")
      self.window.screen.onkey(self.head.go_left, "Left")  

      self.head.move()

      self.checks_collision()

      time.sleep(self.delay)
Exemple #9
0
 def update_fruit(self):
     snake_head = self.__snake.get_head_position()
     if self.__fruit.has_been_eaten(snake_head[0], snake_head[1],
                                    snake_head[2]):
         # nao sei porque, mas tick nao aparece preenchido aqui
         self.__tick.increase_velocity()
         self.__add_tail = True
         self.__fruit = Fruit()
Exemple #10
0
  def generate_food(self):
    while True:
      x = random.randint(0, self.max_column)
      y = random.randint(0, self.max_row)

      if self.snake.is_colliding(x, y):
        break

    self.add(Fruit(x, y))
Exemple #11
0
 def addFruit(self, fruitInt, xpos, vspeed, foodType, iD):
     xpos += self.width / 2
     food = Fruit(self,
                  type=foodType,
                  xpos=xpos,
                  randFruitInt=fruitInt,
                  vspeed=vspeed,
                  fruitID=iD,
                  side='right')
     self.fruitsOpp.append(food)
Exemple #12
0
def main():
    pg.init()
    settings = Settings()
    game_stats = GameStats()

    screen = pg.display.set_mode(settings.screen_size)
    title = 'Snake | Max score: ' + str(game_stats.max_score) + ' | Score: ' +\
            str(game_stats.score)
    pg.display.set_caption(title)

    fruit = Fruit(settings, screen)
    snake = Snake(settings, screen)
    text = Text(screen, settings, 'GAME OVER')
    button = RestartButton(screen, settings)
    menu = Menu(screen)

    fps_controller = pg.time.Clock()

    while 1:
        if not settings.menu_passed:
            gf.start_game(screen, menu)
            gf.is_menu_passed(settings, menu)
        else:
            if not settings.game_over:
                gf.check_events(snake)
                gf.update(fruit, snake, game_stats, fps_controller, screen,
                          settings)

                if not settings.fruit_on_screen:
                    gf.update_caption(game_stats)

                gf.check_game_over(snake, settings)
            else:
                game_stats.update_max_score()
                text.draw()
                button.blit()
                pg.display.flip()

                if gf.is_button_pressed(button, settings):
                    gf.restart_game(game_stats, snake, fruit, settings, screen)
                    snake = Snake(settings, screen)
                    fruit = Fruit(settings, screen)
Exemple #13
0
    def get_fruits(self):
        """load images and store as hash map"""
        path = self.resource_path("fruits")
        fruit_names = listdir(path)

        for name in fruit_names:
            path = self.resource_path("fruits/" + name)
            image = pygame.image.load(path)
            image = pygame.transform.scale(image, (c.CARD_SIZE, c.CARD_SIZE))
            fruit = Fruit(name, image)
            self.fruits.append(fruit)
Exemple #14
0
    def __init__(self):
        super().__init__()

        # Snake settings
        self.snake = Snake(self.screen)

        # Snake bots settings
        self.snake_bot = SnakeBot(self.screen)
        self.snake_bot_2 = SnakeBot(self.screen)

        # Fruits settings
        self.fruit = Fruit(self.screen)
Exemple #15
0
 def update(self):
     self.delta_time = pygame.time.get_ticks() - self.last_frame_ticks
     self.last_frame_ticks = pygame.time.get_ticks()
     self.spawn_timer -= self.delta_time
     if self.spawn_timer <= 0:
         self.spawn_timer = 10000
         if len(self.fruits) == 0:
             fruit = Fruit(self.game_master)
             fruit.rect.center = (self.fruit_spawn_position_x,
                                  self.fruit_spawn_position_y)
             self.fruits.add(fruit)
     for fruit in self.fruits:
         fruit.update()
Exemple #16
0
    def start(self):
        if self.generate_config:
            self.write_default_config()
            raise NoStart()

        if self.config_file:
            path, config_file_name = os.path.split(self.config_file)
            self.load_config_file(config_file_name, path=path)

        # Do some stuff with the valid config
        from fruit import Fruit
        # Should print the name of the fruit
        f = Fruit(self)
Exemple #17
0
    def launcher_menu(self):
        """商店入口"""
        oper = FruitOperate(
            [Fruit("苹果", 2, 3),
             Fruit("香蕉", 1, 5),
             Fruit("梨子", 6, 6)])  # 用于测试
        while True:
            print("=" * 21 + "水果超市" + "=" * 21)
            for menu_order, menu_name in self.menu_dict.items():
                print(menu_order + "." + menu_name)
            print("=" * 46)
            order = int(input("请输入要操作的序号:"))
            if order == 6:
                break
            elif order == 1:
                info_list = oper.query_all_fruit()
                print(self.parse_fruit_info(info_list))
            elif order == 2:
                info_list = oper.query_single_fruit(input("请输入要查询水果的名字:"))
                print(self.parse_fruit_info(info_list))
            elif order == 3:
                flags = oper.add_fruit(self.create_fruit(
                    input("请输入要添加水果的信息:")))
                print(self.parse_success_info(flags, 3))
            elif order == 4:
                name = input("请输入要修改水果的名字:")
                if oper.judge_fruit_exist(name) is False:
                    print("{}不在库中".format(name))
                    continue
                price = input("请输入要修改水果的价格(回车略过):")
                amount = input("请输入要修改水果的数量(回车略过):")
                flags = oper.modify_fruit(name, price, amount)
                print(self.parse_success_info(flags, 4))
            elif order == 5:
                flags = oper.remove_fruit(input("请输入要删除水果的名字:"))
                print(self.parse_success_info(flags, 5))

        print("=" * 21 + "再见" + "=" * 21)
Exemple #18
0
 def build_maze(self):
     if self.maze_blocks or self.pellets or self.fruits or self.power_pellets or self.shield_blocks:
         self.maze_blocks.empty()
         self.pellets.empty()
         self.power_pellets.empty()
         self.fruits.empty()
         self.shield_blocks.empty()
     if len(self.ghost_spawn) > 0:
         self.ghost_spawn.clear()
     y_start = self.screen.get_height() // 12
     y = 0
     for i in range(len(self.map_lines)):
         line = self.map_lines[i]
         x_start = self.screen.get_width() // 5
         x = 0
         for j in range(len(line)):
             co = line[j]
             if co == 'x':
                 self.maze_blocks.add(Block(x_start + (x * self.block_size),
                                            y_start + (y * self.block_size),
                                            self.block_size, self.block_size,
                                            self.block_image))
             elif co == '*':
                 if randrange(0, 100) > 1:
                     self.pellets.add(Block(x_start + (self.block_size // 3) + (x * self.block_size),
                                            y_start + (self.block_size // 3) + (y * self.block_size),
                                            self.block_size, self.block_size,
                                            self.pellet_image))
                 else:
                     self.fruits.add(Fruit(x_start + (self.block_size // 4) + (x * self.block_size),
                                           y_start + (self.block_size // 4) + (y * self.block_size),
                                           self.block_size, self.block_size))
             elif co == '@':
                 self.power_pellets.add(Block(x_start + (self.block_size // 3) + (x * self.block_size),
                                              y_start + (self.block_size // 3) + (y * self.block_size),
                                              self.block_size, self.block_size,
                                              self.ppellet_image))
             elif co == 's':
                 self.shield_blocks.add(Block(x_start + (x * self.block_size),
                                              y_start + (y * self.block_size),
                                              self.block_size // 2, self.block_size // 2,
                                              self.shield_image))
             elif co == 'o':
                 self.player_spawn = [(i, j), (x_start + (x * self.block_size) + (self.block_size // 2),
                                      y_start + (y * self.block_size) + (self.block_size // 2))]
             elif co == 'g':
                 self.ghost_spawn.append(((i, j), (x_start + (x * self.block_size),
                                         y_start + (y * self.block_size))))
             x += 1
         y += 1
Exemple #19
0
    def get_fruit(self):
        url = self._url + self._fruits_url + "/" + self._session
        response = requests.get(url=url, headers=self._header)
        if response.status_code == 400:
            return None, BagStatus.LOOKAHEAD_EXCEEDED
        elif response.status_code == 204:
            return None, BagStatus.NO_MORE_FRUITS

        fruit = json.loads(response.content.decode("utf-8"))
        key = "".join(fruit.keys())
        value = fruit[key]
        fruit = Fruit(key, value)
        print("Retrieved fruit " + fruit.key)
        return fruit, BagStatus.OK
Exemple #20
0
    def play(self):
        while not self.game_over:
            self.clock.tick(self.FPS)

            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    self.game_over = True
                    break
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_ESCAPE:
                        self.game_over = True
                        break
                    if event.key in (pygame.K_LEFT, pygame.K_RIGHT,
                                     pygame.K_DOWN, pygame.K_UP):
                        if abs(self.direction -
                               self.dir[event.key]) != 2 or len(
                                   self.snake.snake) == 1:
                            self.direction = self.dir[event.key]

            self.snake.move(self.direction, self.width, self.height)

            if self.snake.collision():
                self.game_over = True
                pygame.font.init()
                font = pygame.font.SysFont("Arial", 36)
                text = font.render("Game over", 1, (255, 255, 255))
                place = text.get_rect(center=(self.width // 2,
                                              self.height // 2 - 20))
                font2 = pygame.font.SysFont("Arial", 18)
                text2 = font2.render('Score: {}'.format(self.score), 1,
                                     (255, 255, 255))
                place2 = text2.get_rect(center=(self.width // 2,
                                                self.height // 2 + 10))
                self.screen.blit(text, place)
                self.screen.blit(text2, place2)
                pygame.display.flip()
                pygame.time.delay(2000)
                continue

            if self.snake.eat(self.fruit):
                self.fruit = Fruit(self.snake, self.width, self.height)
                self.score += 10
                if len(self.snake.snake) % 5 == 0:
                    self.FPS += 10

            self.screen.fill((0, 0, 0))
            self.fruit.draw(self.screen)
            self.snake.draw(self.screen)
            pygame.display.flip()
Exemple #21
0
def main():

    player = Snake(INITIAL_POS, INITIAL_LENGTH, INITIAL_DIRECTION)
    player.map_squares()
    player.display()

    fruit = Fruit(0, 0)
    fruit.teleport(player)
    fruit.display()

    new_dir = player.facing

    run = True

    while run:

        for e in pygame.event.get():
            if e.type == pygame.QUIT:
                run = False

            elif e.type == pygame.KEYDOWN:
                if e.key == pygame.K_UP and player.facing != "down" and new_dir == player.facing:
                    new_dir = "up"
                elif e.key == pygame.K_LEFT and player.facing != "right" and new_dir == player.facing:
                    new_dir = "left"
                elif e.key == pygame.K_DOWN and player.facing != "up" and new_dir == player.facing:
                    new_dir = "down"
                elif e.key == pygame.K_RIGHT and player.facing != "left" and new_dir == player.facing:
                    new_dir = "right"
                elif e.key == pygame.K_SPACE:
                    player.grow()

            elif e.type == MOVE_EVENT:
                main_surface.fill(WINDOW_BGCOLOR)
                player.facing = new_dir
                player.update()
                player.display()
                fruit.display()

                if player.check_fruit_collision(fruit):
                    player.grow()
                    fruit.teleport(player)
                    fruit.display()

                if player.check_self_collision():
                    run = False
                    break

            pygame.display.flip()
Exemple #22
0
 def checkPelletEvents(self):
     pellet = self.pacman.eatPellets(self.pellets.pelletList)
     if pellet:
         self.pelletsEaten += 1
         self.updateScores(pellet.points)
         self.ghosts.resetPoints()
         if (self.pelletsEaten == 70 or self.pelletsEaten == 140):
             if self.fruit is None:
                 self.fruit = Fruit(self.nodes, self.sheet, self.level)
         self.pellets.pelletList.remove(pellet)
         if pellet.name == "powerpellet":
             self.ghosts.freightMode()
         if self.pellets.isEmpty():
             self.pauseTime = 3
             self.nextLevelAfterPause = True
             self.flash_background = True
Exemple #23
0
def run_game():
    # Initialize the game configuration
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption("Snake_game")
    sn = Snake(ai_settings, screen)
    fr = Fruit(ai_settings, screen)
    stats = GameStats(ai_settings)
    sb = Score(ai_settings, screen, stats)

    while True:
        gf.check_event(sn)
        sn.update()
        gf.update_fruit(ai_settings, sn, fr, stats, sb)
        gf.update_screen(ai_settings, screen, sn, fr, sb)
Exemple #24
0
    def place_fruit(self, world, snake, fruit_list):
        """
        Places a fruit on the map by random x and y coord.
        """
        window_min_x = world[0][0][0]
        window_min_y = world[0][0][1]
        window_max_x = world[0][len(world) - 1][0]
        window_max_y = world[len(world) - 1][0][1]

        x_coord = random.randrange(window_min_x, window_max_x, 10)
        y_coord = random.randrange(window_min_y, window_max_y, 10)
        fruit_pos = (x_coord, y_coord)

        if list(fruit_pos) in snake.body:
            self.place_fruit(self.world_list, snake, fruit_list)
        else:
            fruit_list.append(Fruit(fruit_pos))
Exemple #25
0
    def __init__(self):
        pygame.init()

        # screen size
        self.height = 720
        self.width = 1280
        self.arena_h = 680
        self.arena_w = 1280

        # crating screen and loading textures
        self.screen = pygame.display.set_mode((self.width, self.height))
        pygame.display.set_caption("Snake by Lukasz Ciesluk")
        self.background = pygame.image.load("images/background.jpg").convert()

        # ticking variables
        self.clock = pygame.time.Clock()
        self.dt = 0.0

        self.start = datetime.datetime.now()
        self.dt1 = 0.0

        # score counter
        self.score = 0

        # speed of the snake
        self.v = 14.0

        self.snake = Snake(self)
        self.food = Fruit(self)
        self.text = Text(self)

        # game loop
        while True:
            self.events()
            self.ticking()
            self.snake.eat(self.food, self)
            self.food.put_fruit()
            self.snake.crush(self.food, self)
            self.screen.fill((0, 0, 0))
            self.draw()
            self.food.draw()
            self.snake.draw()
            self.text.draw(self.score, self.dt1)
            pygame.display.flip()
Exemple #26
0
 def __init__(self):
     self.game_over = False
     self.width = 500
     self.height = 500
     self.status_height = 15
     self.screen = pygame.display.set_mode((self.width, self.height))
     self.clock = pygame.time.Clock()
     self.FPS = 10
     self.snake = Snake(self.width, self.height, self.status_height)
     self.fruit = Fruit(self.snake, self.width, self.height, self.status_height)
     self.direction = 3
     self.dir = {
         pygame.K_LEFT: 0,
         pygame.K_UP: 1,
         pygame.K_RIGHT: 2,
         pygame.K_DOWN: 3
     }
     self.score = 0
     self.level = 1
Exemple #27
0
    def __init__(self):
        # Cria uma matriz 6x4x4 preenchida com 0s (ver manipulação na biblioteca numpy)
        self.__board = [[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],
                         [0, 0, 0, 0]],
                        [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],
                         [0, 0, 0, 0]],
                        [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],
                         [0, 0, 0, 0]],
                        [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],
                         [0, 0, 0, 0]],
                        [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],
                         [0, 0, 0, 0]],
                        [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],
                         [0, 0, 0, 0]]]

        self.__gpio_manager = GPIO_Manager()
        self.__snake = Snake()
        self.__fruit = Fruit()
        self.__mouse = Mouse(self.on_click)
        self.__tick = Tick(self.on_tick)
Exemple #28
0
 def checkPelletEvents(self):
     pellet = self.pacman.eatPellets(self.pellets.pelletList)
     if pellet:
         sound = pygame.mixer.Sound('waka.mp3')
         sound.play()
         self.pelletsEaten += 1
         self.score += pellet.points
         if (self.pelletsEaten == 70 or self.pelletsEaten == 140):
             if self.fruit is None:
                 levelmap = self.level.getLevel()
                 self.fruit = Fruit(self.nodes, self.sheet, levelmap["fruit"])
         self.pellets.pelletList.remove(pellet)
         if pellet.name == "powerpellet":
             self.ghosts.resetPoints()
             self.ghosts.freightMode()
         if self.pellets.isEmpty():
             self.pacman.visible = False
             self.ghosts.hide()
             self.pause.startTimer(3, "clear")
             self.flashBackground = True
Exemple #29
0
    def checkPelletEvents(self):
        #This section is in charge of checking if Pacman is on a pellet.

        pellet = self.pacman.eatPellets(self.pellets.pelletList)
        if pellet:
            self.pelletsEaten += 1
            self.score += pellet.points
            if (self.pelletsEaten == 70 or self.pelletsEaten == 140):
                if self.fruit is None:
                    self.fruit = Fruit(self.nodes, self.sheet)
            self.pellets.pelletList.remove(pellet)
            if pellet.name == "powerpellet":
                pass
                #self.ghosts.resetPoints()   Ghost command, removed to get rid of ghosts
                #self.ghosts.freightMode()   Ghost command, removed to get rid of ghosts
            if self.pellets.isEmpty():
                self.pacman.visible = False
                #self.ghosts.hide()    Ghost command, removed to get rid of ghosts
                self.pause.startTimer(
                    0.1, "clear"
                )  #Used to be 3, has been set to 0.1. No reset timer.
Exemple #30
0
def start_game(timer):

    mango = Fruit("mango", 15, "mango.png", .2)
    forbiddenMango = Fruit("forbidden mango", -15, "mango.png", .7)
    apple = Fruit("apple",10,"apple.png",.5)
    badApple = Fruit("bad apple",-10,"badapple.png",.5)
    orange = Fruit("orange", 5, "orange.png", .7)
    pineapple = Fruit("pinapple", 15, "pinapple.png", .4)
    fruits = [mango, forbiddenMango, apple, badApple, orange, pineapple]

    power = Power("Faster Basket","Faster Basket",0,"power1.png",.9,5)
    power2 = Power("10 Extra Points", "10 Extra Points", 10,"power2.png", .9,0)

    powers = [power, power2]
    poisons = [Poison.send_poison(), Poison.slower(), Poison.burn()]

    seconds = timer
    start = time.time()
    time.process_time()
    elapsed = 0
    power_random = random.randint(0,seconds)

    print("Get Ready!")
    print(f"You have {seconds} seconds to catch as many fruits as you can!")
    while elapsed <= seconds:
        print(f"Total score: {basket.get_score()}")
        elapsed = time.time() - start
        fruit = random.choice(fruits)
        pw = random.choice(powers)
        poison = random.choice(poisons)
        slowed, poison_score, message = poison
        basket.catch_fruit(fruit.get_score())
        if int(elapsed) == power_random:
            basket.catch_fruit(pw.get_score())
            style = add_style(pw.announce)
            print(style())
            basket.use_power(pw.get_time(), pw.get_ability(), pw.get_score())
        if int(elapsed) == 3:
            print(message)
            basket.catch_fruit(poison_score)
            basket.set_speed(slowed)
        print(f"Catched: {fruit.announce()}") 
        time.sleep(1)
    
    basket.update_highsore()

    print(f"Game Over\nScore: {basket.get_score()} | Highscore: {basket.get_highscore()}")