def setUpClass(cls): player1 = objects.Player(name="player1", life_stack=objects.Stack()) player1.life_stack.extend(life_stack) player2 = objects.Player(name="player2", life_stack=objects.Stack()) player2.life_stack.extend(life_stack) cls.round = objects.Round(player1=player1, player2=player2) cls.round.shuffle_players = mock.Mock( side_effect=cls.round.shuffle_players) cls.round.initialize()
def level7(self): """ Level 7 :return: None """ self.level = 7 self.clear_grid() self.place_from_map( (".........................", ".#######################.", ".#p.c..................#.", ".#....M................#.", ".##.####################.", ".#.....................#.", ".#.....................#.", ".#.....................#.", ".#.....................#.", ".#.....................#.", ".#.....................#.", ".#.....................#.", ".#.....................#.", ".#.....................#.", ".#.....................#.", ".#.....................#.", ".#.....................#.", ".#.....................#.", ".#.....................#.", ".#....................e#.", ".#######################.", "........................."), { ".": 'Empty', "#": 'Wall', "p": objects.Player(), "e": objects.Exit(target_level="level6"), "c": objects.Computer(), "M": objects.MazeGenerator(working_area=((2, 5), (23, 17)), path_str=((3, 5), "ddrrrrrdrrrurr"), density=0.8, hackable=['path_str']) })
def get_pm_player(self, user_id): # possible start point player = self.db["players"].find_one({"id": user_id}) if not player: self.db["players"].insert_one(vars(objects.Player(user_id))) player = {"pm": False} return player["pm"]
def level6(self): """ Level 6 :return: None """ self.level = 6 self.clear_grid() self.place_from_map( ("..........", ".########.", ".#p.c...#.", ".#.....k#.", ".####d###.", ".#......#.", ".#......#.", ".####D###.", ".#......#.", ".#.....e#.", ".########.", ".........."), { ".": 'Empty', "#": 'Wall', "p": objects.Player(), "k": objects.SmallKey(color=Colors.AQUA, hackable=[]), "d": objects.ColoredDoor(color=Colors.SCARLET, hackable=['color']), "D": objects.ColoredDoor(color=Colors.AQUA, required_key_name="big_key", hackable=['required_key_name']), "e": objects.Exit(target_level="level6"), "c": objects.Computer(), })
def get_language_player(self, user_id): player = self.db["players"].find_one({"id": user_id}) if player: return player["lang"] else: self.db["players"].insert_one(vars(objects.Player(user_id))) return "en"
def end_game(self, chat_id, players, chameleon, winners, starter=False): self.db["groups"].update_one({"id": chat_id}, {"$inc": { "games_played": 1 }}) for player in players: updated = self.db["players"].find_one_and_update( {"id": player}, {"$inc": { "games_played": 1 }}) if not updated: self.db["players"].insert_one(vars(objects.Player(player, 1))) self.db["players"].update_one({"id": chameleon}, {"$inc": { "been_chameleon": 1 }}) self.db["players"].update_many({"id": { "$in": winners }}, {"$inc": { "games_won": 1 }}) if starter: self.db["players"].update_one({"id": starter}, {"$inc": { "games_started": 1 }}) self.db["players"].update_one({"id": players[0]}, {"$inc": { "starter": 1 }})
def __init__(self, char_id, init_pos, end_pos): super().__init__() self.player = objects.Player(char_id, init_pos[0], init_pos[1]) self.ground = [] self.walls = [] self.spikes = [] self.roof = [] self.enemies = [] self.elements.append(objects.Image('BoxFinish.png')) self.element_locations.append(end_pos)
def __init__(self, screen, display, avalgame=None): self.avalgame = avalgame self.dataStore = log.GenerateInfo() self.disp = display self.canvas = screen self.screen = screen.screen self.width = self.screen.get_rect().width self.height = self.screen.get_rect().height self.image = pygame.image.load('media/sprites/background.png') self.bg_color = (255, 255, 255) self.player = objects.Player("image", 300, 500, 50, 50, 0) self.startTime = datetime.now()
def __init__(self): self.running = True self.platform = objects.Platform() self.player = objects.Player(WIDTH, self.platform) self.drops = [ objects.WaterDrop(WIDTH, HEIGHT) for x in range(START_DROPS) ] self.amount_of_drops = START_DROPS self.lives = 5 self.title_running = True self.count = 0 self.time = 0
def get_random_player(): """ Creates a Player object with a random map :return: Player """ player = objects.Player() ships = objects.get_list_of_ships() j = 0 for ship in ships: i = 0 j += 1 while not __is_added(player, ship): i += 1 return player
def filterValue(self, value, position): if value == ' ': return elif value == '#': self.walls.append(objects.Wall(position)) self.grid[position] = self.walls[-1] elif value == 'P': self.player = objects.Player(position) self.grid[position] = self.player elif value.islower(): self.holes.append(objects.Hole(position, value)) self.grid[position] = self.holes[-1] elif value.isupper(): self.blocks.append(objects.Block(position, value)) self.grid[position] = self.blocks[-1] else: raise ValueError(f'Format character "{value}" not recognized.')
def level5(self): """ Level 5 :return: None """ self.level = 5 self.clear_grid() self.place_from_map( ("..........", ".########.", ".#p.c...#.", ".#.....k#.", ".####d###.", ".#......#.", ".#.....e#.", ".########.", ".........."), { ".": 'Empty', "#": 'Wall', "p": objects.Player(), "k": objects.SmallKey(color=Colors.AQUA, hackable=['color']), "d": objects.ColoredDoor(color=Colors.GREEN), "e": objects.Exit(target_level="level6"), "c": objects.Computer() })
def level1(self): """ Level 1 :return: None """ self.level = 1 self.clear_grid() self.disable_console() self.place_from_map( ("..........", ".########.", ".#p.....#.", ".#.....k#.", ".####d###.", ".#......#.", ".#.....e#.", ".########.", ".........."), { ".": 'Empty', "#": 'Wall', "p": objects.Player(), "k": objects.SmallKey(), "d": objects.KeyDoor(key_name="small_key"), "e": objects.Exit(target_level="level2") })
def load(self): self.reset() x = 0 y = 0 lvlData = [] f = open("lvl/%03d.lvl" % (self.number)) maxX = 0 for y, ln in enumerate(f): ln = ln.rstrip() if len(ln) > maxX: maxX = len(ln) wall = [] for x, ch in enumerate(ln): # actors if ch == 'p': self.players.append( objects.Player(x * core.tileSize, y * core.tileSize, core.controls)) if ch == 'f': self.aliens.append( objects.Floater(x * core.tileSize, y * core.tileSize)) if ch == 'c': self.aliens.append( objects.Crawler(x * core.tileSize, y * core.tileSize)) if ch == 'b': self.aliens.append( objects.Brooder(x * core.tileSize, y * core.tileSize)) # walls if ch == '#': wall.append(1) else: wall.append(0) #endfor lvlData.append(wall) self.height += core.tileSize #endfor self.width = maxX * core.tileSize if not self.players: self.players.append( objects.DummyPlayer(core.width / 2, core.height / 2)) self.setTiles(lvlData)
def __init__(self, root): state.State.__init__(self, root) self.objects = rgl.gameobject.Group() self.scenery = rgl.gameobject.Group() self.collidables = rgl.gameobject.Group() self.doors = rgl.gameobject.Group() self.npcs = rgl.gameobject.Group() self.items = rgl.gameobject.Group() self.players = rgl.gameobject.Group() objects.GameObject.collision_objects = self.collidables objects.Player.groups = [self.objects, self.players] objects.Scenery.groups = [self.scenery] objects.Obstacle.groups = [self.objects, self.collidables] objects.Door.groups = [self.objects, self.doors] objects.NPC.groups = [self.objects, self.npcs, self.collidables] objects.Chest.groups = [self.objects, self.items] objects.Water.groups = [self.objects] self.events = { "gun_quest": 0, } self.inventory = { } self.npc_cache = {} # self.camera = Rect(40, 40, 296, 296) # self.camera_xbounds = 64 # self.camera_ybounds = 64 # self.camera = Rect(0, 0, 240, 240) self.camera = Rect(0, 0, 160, 144) self.camera_xbounds = 16 self.camera_ybounds = 16 self.player = objects.Player(self, 2) self.map = maploader.GameMap(self) self.map.load_config("editor.cfg") # self.map.parse("data/maps/world-map.map") self.map.parse("data/maps/Home.map") self.world_rect = Rect(0, 0, self.map.info.size[0], self.map.info.size[1]) self.make_background() self.font = rgl.font.Font(NES_FONT) self.action_handler = ActionHandler(self)
def __init__(self, context): self.__context = context self.__chosen_ship = IntVar() self.__chosen_ship.set(4) # Ships choosing frame self.__frame_choose = Frame(self.__context.get_root()) self.__create_choose_frame(self.__frame_choose) # Attributes of status frame self.__label_type = None self.__label_amount = None self.__orientation = True # True if the ship is horizontal else Folse # Chosen ship status frame self.__frame_status = Frame(self.__context.get_root()) self.__create_status_frame(self.__frame_status) # Sets up first status frame self.__frame_of_orientation = \ self.__draw_ship(self.__frame_status, self.__chosen_ship.get(), self.__orientation) self.__frame_of_orientation.pack() # Map frame self.__frame_map = Frame(self.__context.get_root()) self.__map = None self.__create_map_frame(self.__frame_map) # Attributes of message frame self.__label_warnings = None # Message frame self.__frame_message = Frame(self.__context.get_root()) self.__create_message_frame(self.__frame_message) # Special frame self.__frame_special = Frame(self.__context.get_root()) self.__create_special_frame(self.__frame_special) # Player object self.__player = objects.Player() self.__can_ship_be_put = True
def generate(self): self.reset() lvlData = [] width = 10 + self.number * 10 depth = 20 + self.number * 50 for i in xrange(0, depth): ln = [] for j in xrange(0, width): ln.append(1) lvlData.append(ln) #endfor x = width / 2 y = 0 dx = 0 dy = 5 random.seed(self.number) while y < depth - 1: for i in range(0, random.randint(2, 4)): for j in range(random.randint(-1, 0), random.randint(2, 4)): if x + j < width - 1 and x + j > 0 and y + i < depth: lvlData[y + i][x + j] = 0 if dy: dy -= 1 y += 1 if not dy: dx = self.randDir(width - 1, x) elif dx: if dx > 0: dx -= 1 x += 1 else: dx += 1 x -= 1 if not dx: dy = random.randint(2, 10) #endwhile self.height = depth * core.tileSize self.width = width * core.tileSize self.players.append(objects.Player(self.width / 2, 10, core.controls)) self.setTiles(lvlData)
def __on_clear_button_pressed(self): """ Calls when clear all button is clicked :return: None - Clears all built ships """ if self.__player.is_some_ships_placed(): is_player_agree = msg.askyesno(String.APP_NAME, String.StatusFrame.DIALOG_CLEAR_ALL) if is_player_agree: self.__player = None self.__player = objects.Player() self.__map.refresh() self.__show_warning(String.StatusFrame.WARNING_SHIPS_CLEARED, "green") # Refresh status frame self.__on_ship_chosen() else: self.__show_warning(String.StatusFrame.WARNING_EMPTY_MAP, "red")
def __init__(self): self.screen = pygame.display.set_mode(config.WINDOW_SIZE) pygame.mouse.set_visible(False) self.window_size = config.WINDOW_SIZE self.fullscreen = 0 if config.FULLSCREEN: self.fullscreen_toggle() self.blur = config.BLUR self.clock = pygame.time.Clock() self.fps = config.FPS self.title = world.TitleScreen(self) self.title.init() self.player = objects.Player(self, y=100) self.title.add(self.player) self.start()
def loadLevel(self, level): print("level loading") levelfile = open(self.levelDir + "/" + self.levelList[level]) levelDict = json.load(levelfile) levelfile.close() self.assetsDir = levelDict[ "assetsDir"] if "assetsDir" in levelDict else "assets\\" self.spriteSheet = objs.spritesheet( levelDict["sprite sheet"] ) if "sprite sheet" in levelDict else None #check for a sprite sheet otherwise none self.physics = levelDict["physics"] if "physics" in levelDict else { "gravity": 100 } #check if physics are set self.player = objs.Player(levelDict["player"], levelDict["assetsDir"]) self.objects = [] for x in levelDict["objects"]: self.objects.append( objs.Sprite(x, assetdir=self.assetsDir, ss=self.spriteSheet)) self.background = [] if "backgrounds" in levelDict: for x in levelDict["backgrounds"]: self.background.append(objs.Background(x, self.assetsDir)) self.background = sorted(self.background, key=lambda x: x.distance, reverse=True) map = levelDict["map"] map = map[::-1] for y in range(len(map)): for x in range(len(map[y])): if map[y][x] != 0: self.objects[map[y][x] - 1].instances.append([x, y])
os.chdir(os.path.dirname(os.path.realpath("__file__"))) # Create Game object game.InvadersGame() # Load backgrounds wall_sprite = sge.gfx.Sprite(width=game.RESX, height=game.WALL_HEIGHT) wall_sprite.draw_rectangle(0, 0, wall_sprite.width, wall_sprite.height, fill=sge.gfx.Color('white')) layers = [ sge.gfx.BackgroundLayer(wall_sprite, 0, game.RESY - game.WALL_YOFFSET) ] background = sge.gfx.Background(layers, sge.gfx.Color('black')) # Create objects invaders = [objects.Invader() for _ in range(6)] player = objects.Player() #Player is always the first object obj = [player] + invaders # Create room sge.game.start_room = game.GameRoom(obj, background=background) # Remove the mouse to increase performance by avoiding collision detection sge.game.mouse.visible = False sge.game.start_room.remove(sge.game.mouse) # Here we go! sge.game.start()
def main(): lives = 3 reply = input('Do want to make your own level?(y/n) ') if reply == "y": level_name = input('What do you want to name your cutom level? ') levelGenerator.makeLevel(level_name) level_name = input('Please enter level name: ') while lives: tme = 360 + int(time.time()) clearLists(specialbrick, brick, enemy, spring, coin, cloud, castle, boss) bd = board.Board(config.board_width, config.board_width) try: loadLevel(level_name, "brick", "spring", "goomba", "stalker", "spikey", "boss", "castle", "cloud", "coin", "specialbrick") except: print("No such level exists") exit() mario = objects.Player(2, 2, 54, 15) bd.at = 0 while True: bd.clear(config.show_width) levelGenerator.addobjects(bd, brick, enemy, spring, coin, cloud, specialbrick, boss, castle) bd.add(mario, mario.x, mario.y) collisionCheck.bossFight(enemy, boss, bd, mario) collisionCheck.enemyCollision(enemy, enemy, mario, bd) collisionCheck.enemyCollision(boss, boss, mario, bd) collisionCheck.updateEnemy(boss, bd, mario.x, brick, spring) collisionCheck.updateEnemy(enemy, bd, mario.x, brick, spring) collisionCheck.brickCollision(brick, mario, bd) collisionCheck.specialbrickCollision(specialbrick, mario, bd) collisionCheck.springCollision(spring, mario, bd) collisionCheck.coinCollision(coin, mario, bd) if mario.hp <= 0 or mario.y > config.show_height or int( tme - time.time()) <= 0: lives -= 1 break if mario.x >= castle[0].x: print("YOU WIN \t TOTAL SCORE:", mario.score + int(tme - time.time())) lives = 0 break os.system('tput reset') bd.show(config.show_width, config.show_height) print("LIVES:", lives, "\t", "HEALTH:", mario.hp, "\t", "SCORE:", mario.score, "\t", "TIME LEFT:", int(tme - time.time())) event = config.get_key(config.get_input()) if event == config.QUIT: lives = 0 break if mario.move(event) == "move": bd.move(event, 1) print("GAME OVER")
def test_player(self): player = objects.Player(name="user1", life_stack=objects.Stack()) self.assertIsInstance(player, objects.Player) self.assertIsInstance(player.name, str) self.assertIsInstance(player.life_stack, objects.Stack)
import pygame import objects pygame.init() #Start Pygame background_color = (121, 187, 210) # light blue screen = pygame.display.set_mode((800, 600)) #Start the screen clock = pygame.time.Clock() player = objects.Player(100, 100, 50, 50) ground = objects.Platform(0, 500, 800, 100) top = objects.Platform(0, -100, 800, 100) left_side = objects.Platform(-10, -10 * 100, 10, 10 * 100 + 600) right_side = objects.Platform(800, -10 * 100, 10, 10 * 100 + 600) platforms = [ objects.Platform(200, 400, 400, 25), objects.Platform(500, 100, 200, 25) ] game_objects = [ground, left_side, right_side, top] + platforms blackholes = [ objects.BlackHole(300, 300, 10, 10), objects.BlackHole(400, 200, 10, 10) ] running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: # The user closed the window! running = False # Stop running screen.fill(background_color)
:param player_score: количество очков у игрока. :param dealer_score: количество очков у дилера. :param end: параметр, отвечающий за конец игры. Если True - игра закончена. :return: ход или итог игры. ''' if (player_score > dealer_score and end is True) \ or dealer_score > 21 or player_score == 21: return 'Ты выиграл.' elif player_score > 21 or player_score < dealer_score and end is True: return 'Ты проиграл.' else: return 'Идёт игра' deck = objects.Deck() # Колода player = objects.Player() # Игрок dealer = objects.Dealer() # Дилер action = '' # Действие игрока shuffle(deck.deck) # Перемешиваем колоду # Ход игры game_progress = 'Игра началась, колода помешана. В игре 2 игрока, Dealer и Player' print(game_progress) game_progress = 'Идёт игра' # Цикл взаимодействия с пользователем в соответствии с правилами игры. while game_progress == 'Идёт игра': print('1 - взять еще\n2 - закончить') action = input('Ваше действие: ') if action == '1': player.add_cards(dealer.more())
pygame.font.init() pygame.key.set_repeat(100, 50) screen = pygame.display.set_mode((640, 480)) pygame.display.set_caption('Asteroids') screenx = screen.get_width() screeny = screen.get_height() background = pygame.Surface((screen.get_size())) background.fill((255, 255, 255)) background.convert() playerObjects = pygame.sprite.Group() asteroids = pygame.sprite.Group() player = objects.Player(screenx / 2, screeny / 2, screen) playerObjects.add(player) for x in range(0, 2): asteroids.add(objects.LargeAsteroid(screen)) clock = pygame.time.Clock() while player.isAlive: if (pygame.time.get_ticks() % 20000) == 0: asteroids.add(objects.LargeAsteroid(screen)) for sprite in playerObjects: collision = pygame.sprite.spritecollide(sprite, asteroids, False) if sprite is player and collision and pygame.time.get_ticks() > 1000: player.isAlive = False
def __init__(self, screen, players, map): self.rect = pygame.Rect((0, 0), list(map.size)) self.galaxysize = list(map.size) self.camera = (0, 0) self.backgrounds = [] for n, l in enumerate(range(gwglob.particles('star fields'))): size = (self.galaxysize[0] + (self.galaxysize[0] - gwglob.SIZE[0]) * (3 - n), self.galaxysize[1] + (self.galaxysize[1] - gwglob.SIZE[1]) * (3 - n)) self.backgrounds.append(pygame.Surface(size)) if n: self.backgrounds[-1].set_colorkey((0, 0, 0)) self.backgrounds[-1].lock() for s in range( gwglob.particles('stars per field') * int( round((size[0] * size[1]) / float(gwglob.SIZE[0] * gwglob.SIZE[1])))): color = gwglob.STAR_COLORS[int(random() * len(gwglob.STAR_COLORS))] pos = (int(random() * size[0]), int(random() * size[1])) if n: pygame.draw.circle(self.backgrounds[-1], color, pos, 2) else: self.backgrounds[-1].set_at(pos, color) self.backgrounds[-1].unlock() self.planets = [] for p in map.planets: self.planets.append(objects.Planet(self, *p)) self.players = [] self.turn = 0 for name, color in players: player = objects.Player(self, name, [ 'One Shot', 'Hopper', 'Three Shot', 'Jackhammer', 'Sprinkler', 'Chain Reaction', 'Drive', 'Lazer', 'Roller', 'Raining Rockets' ], [-1] * 10, color) least = 9999 planet = None planets = list(self.planets) while planets: n = randint(0, len(planets) - 1) if planets[n].mass < gwglob.MASS_HABITABLE: players = len(planets[n].players) if players < least: least, planet = players, planets[n] del planets[n] planet.players.append(player) self.players.append(player) self.toolbox = objects.Toolbox(self, self.players[0]) for p in self.planets: p.place_players() self.centerview() self.objects = [] self.bullets = [] self.explosions = [] self.newobjects = [] self.newbullets = [] self.newexplosions = [] self.stage = 0 self.drag = None Screen.__init__(self, screen)
sys.exit() levels.FLOOR_LEVEL_LIST = levels.update_floor_height() for bg in objects.BG_LIST: bg.update() keys.process_inputs() for object in objects.STATIC_LIST: object.update() player.update() resized_window = pygame.transform.scale(screen.DISPLAY, (screen.REAL_WIDTH, screen.REAL_HEIGHT)) screen.SCREEN.blit(resized_window, (0, 0)) pygame.display.update() CLOCK.tick(screen.FPS) bg = objects.Background(animations.bg, 0, 0, velX=0.2, falls=False) bg2 = objects.Background(animations.bg, - screen.WIDTH, 0, velX=0.2, falls=False) player = objects.Player(animations.playerAnimationRepertoire, screen.WIDTH/2, screen.HEIGHT/2, 0, 0, 0.5) for i in range(4): objects.Static(animations.palmAnimationRepertoire, random.randint(0, screen.WIDTH), screen.HEIGHT - 21, falls=True, collisions=False) for i in range(10): objects.Static(animations.box1AnimationRepertoire, random.randint(0, screen.WIDTH), random.randint(0, levels.FLOOR_LEVEL), falls=False) keys = Key_commands() if __name__ == '__main__': playing = True gameloop() pygame.quit() sys.exit()
ground_height = 100 objects.init(screen_width, screen_height, ground_height) # 3 - Load images #full_bg full_bg = pygame.image.load("resources/images/full_bg.png") full_bg_size = full_bg.get_rect().size full_bg_width = int(full_bg_size[0]) full_bg_height = int(full_bg_size[1]) #player # osman_pasa = objects.Player("resources/images/osman_pasa_renkli.png", [screen_width / 3, screen_height - ground_height], "resources/images/osman_pasa_sag_renkli.png") osman_pasa = objects.Player("resources/images/spawning.png", [screen_width / 3, screen_height - ground_height]) # attributes bullets = [] spawnings = [] keys = [False, False, False, False] initialize_shoot = False shoot_start_tick_counter = -2000 spawning_create_tick_counter = 0 # operational functions def shoot():
def make_players(): players = [] players.append(objects.Player(0.2 * WIDTH, HEIGHT, pygame.K_q, 'viljami1')) players.append(objects.Player(0.1 * WIDTH, HEIGHT, pygame.K_w, 'viljami2')) return players