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)
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)
def restart(): global points, is_dead, snake_obj, fruit_obj points = 0 is_dead = False snake_obj = Snake() fruit_obj = Fruit()
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()
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
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
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)
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()
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))
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)
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)
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)
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)
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()
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)
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)
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
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
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()
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()
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
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)
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))
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()
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
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)
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
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.
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()}")