def main():

    printer = Printer.Printer()
    printer.mainMenu()
    choice = 0
    choice = int(input("Please Enter Your Age:"))
    if choice < 19:
        printer.denyAccess()
        return

    else:
        print("Access Granted")
        turn = "player"
        player = Player.Player()
        ai = Player.Player()
        die = Die.Die()
        maxTotal = (choice)

    while True:
        if turn == "player":
            print("die rolling \../")
            if player.total == 0:
                for i in range(2):
                    die.roll()
                    player.addToTotal(die.value)
                print(player.total)
            else:
                printer.playerChoice()  #adding class to die roll
                pick = input("y/n\n")
                print("AI is rolling the dice")
                if pick == "y":
                    die.roll()
                    player.addToTotal(die.value)
                    printer.printRollValue(die.value, player.total)
                    if player.total > maxTotal:
                        print(
                            "Player has busted and lost, so sad ( >_< -_- >_< -_-)"
                        )
                        break
                else:
                    print("Your Total is : " + str(player.total))
                    turn = "AI"
        else:  # AI turn logic

            printer.dieRoll(die, ai)
            if ai.total >= player.total and ai.total <= maxTotal:
                print("AI Wins  >_< -_- >_< -_-")
                break
            elif ai.total > maxTotal:
                print("AI busted @-@ you got lucky =^_^= ")
                break
            else:
                pass
    print("Thanks for playing! Would You Like To Play Again")
    pick = input("y/n\n")
    if pick == "y":
        return main()
    else:
        return print("Have A Great Day !! See You Soon")
Example #2
0
    def __init__(self):
        # Initialization
        libtcodpy.console_set_custom_font('src/arial10x10.png', libtcodpy.FONT_TYPE_GREYSCALE | libtcodpy.FONT_LAYOUT_TCOD)
        libtcodpy.console_init_root(settings.SCREEN_WIDTH, settings.SCREEN_HEIGHT, 'ROGuelike TUTorial', False)
        libtcodpy.sys_set_fps(settings.LIMIT_FPS)
        self.con = libtcodpy.console_new(settings.SCREEN_WIDTH, settings.SCREEN_HEIGHT)

        self.game_map = GameMap(self.con)
        player_x, player_y = self.game_map.get_staring_position()
        # game objects
        self.player = Player(
            'Player',
            self.con,
            player_x, player_y, '@',
            fighter=Fighter(hp=15, defense=5, power=5, death_function=player_death))

        npc_x, npc_y = self.game_map.get_ending_position()
        self.npc = Npc('Trader', self.con, npc_x, npc_y, '@')
        self.objects = [self.npc, self.player]

        self.npcs = [self.npc]
        for monster in self.game_map.place_monsters():
            self.objects.append(monster)

            if hasattr(monster, 'is_selfmoving') and monster.is_selfmoving:
                self.npcs.append(monster)

        self.game_state = 'playing'
        self.player_action = None
Example #3
0
def init():
    units = []
    player = Player(MAP_SIZE)
    units.append(player)
    player.set_location((random.randint(0, 12) * 5, random.randint(0, 12) * 5))
    player.inital_location = player.location

    objective = Objective()
    units.append(objective)
    objective.set_location(player.location)

    while (player.location == objective.location):
        objective.set_location(
            (random.randint(0, 12) * 5, random.randint(0, 12) * 5))

    mine_count = 10
    mines = []
    for x in range(mine_count):
        temp_location = player.location
        while (temp_location == player.location) or (temp_location
                                                     == objective.location):
            temp_location = (random.randint(0, 12) * 5,
                             random.randint(0, 12) * 5)
        mines.append(Mine())
        units.append(mines[x])
        mines[x].set_location(temp_location)

    return units
Example #4
0
    def __init__(self):
        super().__init__()

        # Load the screen for the current stage
        state = Config.state()
        entities = (Player(Colors.VIR),
                    Enemy(state['color'], state['shoot_delay']))
        self.screen_intro = ScreenIntro(entities, state['balls'])
        if Config.level == 4:
            self.screen_play = ScreenHardcore(entities, state['balls'],
                                              state['max_balls'],
                                              state['max_score'])
        else:
            self.screen_play = ScreenNormal(entities, state['balls'],
                                            state['max_balls'],
                                            state['max_score'])

        # Set the current screen
        self.current_screen = self.screen_intro

        # Pause sound
        self.snd_click = SoundManager.load_sound('snd_click.wav')

        # Play the background music
        SoundManager.load_music('bgm_stage1.ogg')
Example #5
0
    def __init__(self, update=True):
        super().__init__()

        # Repeat cutscene
        if not update:
            Cutscene.current_cutscene -= 1
            ScreenDialog.current_dialog -= 1
            SoundManager.load_music('bgm_dialog.ogg')

        # Change level
        if Cutscene.current_cutscene in (4, 6, 8, 11, 14, 17):
            Config.level += 1

        # Background
        state = Config.state()
        self.background = ScreenBackground(
            (Player(Colors.VIR), Enemy(state['color'], state['shoot_delay'])))

        # Transition
        self.transition = False
        self.transition_delay = 50
        self.snd_transition = SoundManager.load_sound('snd_transition1.wav')

        # Set the current screen
        if Cutscene.current_cutscene in (1, 4, 8, 11, 14, 17):
            self.current_screen = ScreenNarrator()
        elif Cutscene.current_cutscene in (3, 6, 7, 10, 13, 16, 19):
            self.current_screen = ScreenDialog()
            SoundManager.load_music('bgm_dialog.ogg')
        else:
            self.current_screen = ScreenDialog()
Example #6
0
 def parse_tournaments_per_month(cls, div, year, month):
     tournaments = []
     for row in filter(bool, div.findAll("tr")):
         try:
             start, end = row.findChild(
                 "td", {"class": "title-content"}).findChild(
                 "span", {"class": "tourney-dates"}).text.split("-")
             winners = {}
             print row.select(".tourney-details")
             for div in row.select(".tourney-details > div"):
                 if div.text.strip().strip("\t").strip("\n") == "SGL":
                     winners["single"] = Player(
                         name=div.findChild("a").text.strip().strip(
                             "\t").strip("\n"),
                         atp_url="%s/%s" % (
                             cls.URL, div.findChild("a").attrs["href"])
                     )
                 elif div.text.strip().strip("\t").strip("\n") == "DBL":
                     winners["double"] = (
                         Player(
                             name=a.text.strip().strip(
                                 "\t").strip("\n"),
                             atp_url="%s/%s" % (
                                 cls.URL, a.attrs["href"])
                         ) for a in div.findChildren("a")
                     )
             tournaments.append(Tournament(
                 name=row.findChild(
                     "td", {"class": "title-content"}).findChild("a").text,
                 year=year,
                 month=month,
                 atp_url="%s/%s" % (cls.URL, row.findChild(
                     "td", {"class": "title-content"}).findChild(
                     "a").attrs["href"]),
                 start=start.strip().strip("\t").strip("\n"),
                 end=end.strip().strip("\t").strip("\n"),
                 location=row.findChild(
                     "td", {"class": "title-content"}).findChild(
                     "span", {
                         "class": "tourney-location"
                     }).text.strip().strip("\t").strip("\n"),
                 winners=winners
             ))
         except (AttributeError, ValueError):
             continue
     return tournaments
Example #7
0
 def __init__(self, log, player_count=2):
     self.log = log
     self.log.info('New session started.')
     self.community_cards = []
     self.deck = deque(self.ALL_CARDS)
     self.players = []
     for i in range(player_count):
         self.players.append(Player(position=i))
Example #8
0
 def __init__(self, screen):
     super(RunPlay, self).__init__('Run Play')
     self.player = Player(coord=player_coord, speed=12, screen=screen)
     self.spawner = Spawner()
     self.game = game = Game(screen=screen, width=800, length=600)
     self.screen = screen
     self.time = time.time()
     self.score = 0
Example #9
0
    def run_game_loop(self):
        is_game_over = False

        x_dir = 1
        y_dir = 0

        snek = Player(100, 230)
        food = Food(400, 230)

        while not is_game_over:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    is_game_over = True
                elif event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_UP:
                        if y_dir != -1:
                            x_dir = 0
                            y_dir = 1
                    elif event.key == pygame.K_DOWN:
                        if y_dir != 1:
                            x_dir = 0
                            y_dir = -1
                    elif event.key == pygame.K_RIGHT:
                        if x_dir != -1:
                            x_dir = 1
                            y_dir = 0
                    elif event.key == pygame.K_LEFT:
                        if x_dir != 1:
                            x_dir = -1
                            y_dir = 0
                elif event.type == pygame.KEYUP:
                    pass

            self.game_screen.fill(GRAY_COLOR)

            snek.draw_snek(self.game_screen)
            snek.move(x_dir, y_dir)
            food.draw(self.game_screen)

            if snek.is_out_of_bounds(self.resolution):
                is_game_over = True
                pygame.display.update()
                clock.tick(self.TICK_RATE)

            if snek.is_eating_himself():
                is_game_over = True
                pygame.display.update()
                clock.tick(self.TICK_RATE)

            if snek.check_for_food(food):
                food.randomize()
                #self.TICK_RATE += 1

            pygame.display.update()
            clock.tick(self.TICK_RATE)
Example #10
0
def run_simulation(args):
    number_of_players = int(args[0])
    rounds = int(args[1])
    player_args = [int(i) for i in args[2:]]
    players = []
    for i in range(number_of_players):
        buying_strategy = player_args[i * 3]
        upgrading_strategy = player_args[i * 3 + 1]
        trading_strategy = player_args[i * 3 + 2]
        players.append(
            Player(i, buying_strategy, upgrading_strategy, trading_strategy))
    game = Game(players, rounds)
    game.run()
Example #11
0
def create_world():
    global pacman, ghost, item_set, world_map, font_guide, font_life
    pacman = Player()
    ghost = [
        Enemy(35, 565, 1),
        Enemy(565, 35, 2),
        Enemy(565, 565, 3),
        Enemy(350, 390, 4)
    ]
    #   item_set = [item(100, 100, 0), item(200, 200, 0), item(300, 300, 0), item(400, 400, 0)
    #               ,item(100, 200, 4), item(200, 300, 5), item(300, 400, 6), item(400, 500, 7)]
    world_map = map()
    font_guide = load_font('resource/Pixel.ttf', 30)
    font_life = load_font('resource/CrackMan.ttf', 30)
Example #12
0
    def __init__(self, save):
        # If save is NONE, __init__ is called for default values, otherwise data are loaded from file.
        self.player = Player(save)
        self.world = World(save)

        #Build GUI
        self.gui = GUIWindow(self.world.map)

        self.gui.after(int(1000 / 20), self.call)
        self.gui.bind('<Key>', self.keypress)
        self.gui.map.bind('<B1-Motion>', self.map_pan)
        self.gui.map.bind('<MouseWheel>', self.map_zoom)

        self.gui.run()
Example #13
0
def create_players(world, settings):
    players = []
    for config in settings['players']:
        if config['active']:
            codes = []
            for key in config['controls']:
                code = convert_key(key)
                if code is None:
                    raise RuntimeError('Invalid Key: {}'.format(key))
                codes.append(code)
            player = Player(world, config['colour'], config['name'], [codes[0:2], codes[2:4]])
            world.add_object(player)
            players.append(player)
    return players
    def __init__(self, game_width, game_height, agent, user_agent):
        # set the game field
        self.game_width = game_width
        self.game_height = game_height
        self.field = {'width': game_width, 'height': game_height}
        self.redisClient = redis.Redis(host='127.0.0.1', port=6379, db=0)

        self.agent = agent
        self.user_agent = user_agent

        # generate the player instance
        self.player_agent = Player(random.randint(50, self.game_width - 50),
                                   random.randint(50, self.game_height - 50))
        self.player_user = Player(random.randint(50, self.game_width - 50),
                                  random.randint(50, self.game_height - 50))
        flag = True
        x = random.randint(50, self.game_width - 50)
        y = random.randint(50, self.game_height - 50)
        while (flag):
            flag = False
            x = random.randint(50, self.game_width - 50)
            y = random.randint(50, self.game_height - 50)
            position = {'x': x, 'y': y}
            if (util.distance(self.player_agent.position, position) <
                    self.player_user.radius + self.player_agent.radius):
                flag = True
        self.player_user.position['x'] = x
        self.player_user.position['y'] = y
        # initialize the map infomation
        self.map_info = {'stuffs': [], 'bullets': []}

        # initialize the basic infomation of the game
        self.score = 0
        self.timeout = False

        # initialize the agent action
        self.initialize(agent)
Example #15
0
    def __init__(self, level):
        super(Game, self).__init__()
        self.level = Level.load_level(level)
        self.background = Sprite(source='img/background.PNG')
        self.size = self.background.size
        self.player = None
        self.boxes = []

        # Initiate the game by creating tiles
        Tile.make_tiles(self.size, self.level)

        # Add bg widget first to not cover other sprites
        self.add_widget(self.background)

        # Add proper widgets for every non-empty tile in the Tile.List
        for tile in Tile.List:
            if tile.type != 'empty':
                if Tile.get_tile(tile.number - Tile.V).walkable:
                    self.add_widget(Sprite(
                        source=Tile.image_files[tile.type],
                        pos=(tile.x, tile.y)), index=2)
                else:
                    self.add_widget(Sprite(
                        source=Tile.image_files[tile.type + '_edge'],
                        pos=(tile.x, tile.y - SPRITE_EDGE_OFFSET)))

        for tile in self.level.boxspawn:
            self.boxes.append(Box(tile, self))

        self.player = Player(self.level.playerspawn, self)

        self.fps_lab = Label(
            text='FPS: ' + str(Clock.get_rfps()),
            pos=(2, self.height - 110),
            font_name=APP_FONT,
            font_size=18,
            color=(240, 240, 240, 0.8))

        self.add_widget(self.fps_lab)

        self.add_widget(Label(
            text="Level {}".format(self.level.level),
            pos=(0, self.height - 80),
            font_name=APP_FONT,
            font_size=18,
            color=(240, 240, 240, 0.8)))

        # Schedule an interval for the game update function
        Clock.schedule_interval(self.update, 1.0/60.0)
Example #16
0
 def __init__(self):
     self.score = 0
     self.graphic = []
     self.objects = []
     self.shifty = 0
     self.player = Player(20, 75, game=self)
     for i in range(0, 20):
         for j in range(1, 3):
             self.objects.append(Enemy(i * 10, j * 10, game=self))
     for i in range(0, 40):
         self.graphic.append([])
         for j in range(0, 80):
             if ((j) % 2 == 0 and i == self.shifty):
                 self.graphic[i].append("A")
             else:
                 self.graphic[i].append(" ")
Example #17
0
def main():
    """
    Main function of the game
    """

    debug = False
    pygame.init()
    win = pygame.display.set_mode((500, 500))
    pygame.display.set_caption("First Game")

    player = Player(x=50, y=50, width=40, height=60, velocity=15)

    running = True

    while running:
        pygame.time.delay(100)

        for event in pygame.event.get():

            if debug:
                print(event)

            if event.type == pygame.QUIT:
                running = False
            if event.type == pygame.KEYUP and event.key == pygame.K_ESCAPE:
                running = False

        keys = pygame.key.get_pressed()

        if keys[pygame.K_LEFT]:
            if player.x >= 0:
                player.x -= player.velocity
        if keys[pygame.K_RIGHT]:
            if player.x + player.width <= 500:
                player.x += player.velocity
        if keys[pygame.K_UP]:
            if player.y >= 0:
                player.y -= player.velocity
        if keys[pygame.K_DOWN]:
            if player.y + player.height <= 500:
                player.y += player.velocity

        win.fill((0, 0, 0))
        pygame.draw.rect(win, (255, 0, 0), player.get())
        pygame.display.update()

    pygame.quit()
Example #18
0
    def __init__(self):
        self.tk = Tk()
        self.tk.title('Chrome')
        self.tk.resizable(0, 0)
        self.canvas = Canvas(self.tk,
                             width=800,
                             height=200,
                             bd=0,
                             highlightthickness=0)
        self.canvas.config(bg='black')
        self.canvas.pack()

        self.player = Player(self.canvas)
        self.floor = Floor(self.canvas)
        self.obstacles = []
        self.current_speed = 5
        self.frame_number = 0
Example #19
0
    def __init__(self, victory=False):
        super().__init__()

        # Background
        state = Config.state()
        self.background = ScreenBackground(
            (Player(Colors.VIR), Enemy(state['color'], state['shoot_delay'])))

        # Screens
        self.screen_menu = ScreenMenu(self)
        self.screen_options = ScreenOptions(self)

        # Set the current screen
        self.current_screen = self.screen_menu

        # Play the background music
        if victory:
            SoundManager.load_music('bgm_victory.ogg')
        else:
            SoundManager.load_music('bgm_menu.ogg')
Example #20
0
 def __init__(self, gamefile):
     """
     takes path to a xml-gamefile and extracts the world
     """
     self.gamefile = gamefile
     tree = conv.loadworld(gamefile)
     self.properties = conv.unpack_properties(tree)
     self.player = Player(tree.find('player'), self)
     self.rooms = {}
     for room in tree.findall('room'):
         self.rooms[room.get('id')] = Room(self, room)
     self.connections = {}
     for connection in tree.findall('connection'):
         self.connections[connection.get('id')] = Connection(connection)
         # -- WIP -- #            
     self.eventhandler = EventHandler(self)
     self.events = []
     for event in tree.find('events').findall('event'):
         self.events.append(event.get('id'))
         self.eventhandler.events[event.get('id')] = self.eventhandler.parser.parse_xml(event)
Example #21
0
    def __init__(self,
                 resolution=(750, 750),
                 player_velocity=8,
                 enemy_velocity=2,
                 laser_velocity=7,
                 wave_length=5,
                 player_color='yellow'):
        self.window_width, self.window_height = resolution
        self.player_velocity = player_velocity
        self.enemy_velocity = enemy_velocity
        self.laser_velocity = laser_velocity
        self.wave_length = wave_length

        self.player = Player(300, 630, player_velocity, laser_velocity,
                             player_color)
        self.enemies = []
        self.lasers = []

        self.level = 0
        self.lives = 3
        self.max_lives = 3
        self.score = 0
        self.lost = False
        self.cooldown = 10
Example #22
0
    def __init__(self, seed, size, volume):
        # Константы генерации карты
        self.SEED = 15
        self.SIZE = int(1024 * size)
        self.H_MAX = 20
        self.SHARP = 2
        self.DEPTH = 100
        self.PROBABILITY = 1/2
        self.H_0 = 12
        self.LAKES_NUMBER = int(10*size)
        
        # Инициализируем пайгейм
        pygame.init()
        self.screen = pygame.display.set_mode((0,0),pygame.FULLSCREEN)
        pygame.display.update()
        self.clock = pygame.time.Clock()
        
        # Константы игры
        self.FPS = 20    
        self.finished = False
        self.BLOCK_SIZE = 20
        self.DO_RADIUS = 140
        self.inventory_bool = False
        self.volume = volume
        
        # Размеры окна
        self.WINDOW_X, self.WINDOW_Y = pygame.display.get_surface().get_size()
        self.ORIGINAL_WINDOW_X = 1920
        self.ORIGINAL_WINDOW_Y = 1080
        self.RATIO_X = self.WINDOW_X/self.ORIGINAL_WINDOW_X
        self.RATIO_Y = self.WINDOW_Y/self.ORIGINAL_WINDOW_Y        
        
        # Подгружаем текстуры карты
        self.dirt_grass = pygame.image.load('resources/map/dirt_grass.png')

        self.blocks = [[pygame.image.load('resources/map/dirt.png'), 
                        pygame.image.load('resources/map/stone.png')],
                       [pygame.image.load('resources/map/snow.png'), 
                        pygame.image.load('resources/map/ice.png')]]

        self.water = [pygame.image.load('resources/map/water.png'), 
                      pygame.image.load('resources/map/ice_water.png')]
        
        # Подгружаем текстуры персонажа
        self.player_animation = [pygame.image.load('resources/player_animation/player_right.png'), 
                    pygame.image.load('resources/player_animation/move_right_1.png'),
                    pygame.image.load('resources/player_animation/move_right_2.png'),
                    pygame.image.load('resources/player_animation/player_left.png'), 
                    pygame.image.load('resources/player_animation/move_left_1.png'),
                    pygame.image.load('resources/player_animation/move_left_2.png')]
        
        # Подгружаем бэкграунд
        self.bg = pygame.image.load('resources/bg.png')
        self.bg = pygame.transform.scale(self.bg, (self.WINDOW_X, self.WINDOW_Y))
        
        # Подгружаем текстуры инвентаря
        self.inventory_image = pygame.image.load('resources/inventory/inventory.png')
        self.INVENTORY_IMAGE_SIZE_X = int(1000*self.RATIO_X)
        self.INVENTORY_IMAGE_SIZE_Y = int(100*self.RATIO_Y)
        self.inventory_image = pygame.transform.scale(self.inventory_image, (self.INVENTORY_IMAGE_SIZE_X, self.INVENTORY_IMAGE_SIZE_Y))
        
        self.tools_invent = [pygame.image.load('resources/inventory/inventory_image/dirt.png'),
                             pygame.image.load('resources/inventory/inventory_image/stone.png')]
        self.TOOLS_INVENT_SIZE_X = int(100*self.RATIO_X)
        self.TOOLS_INVENT_SIZE_Y = int(100*self.RATIO_Y)
        for i in range(0, len(self.tools_invent)):
            self.tools_invent[i] = pygame.transform.scale(self.tools_invent[i], (self.TOOLS_INVENT_SIZE_X, self.TOOLS_INVENT_SIZE_Y))                           

        self.cell = pygame.image.load('resources/inventory/cell.png')
        self.CELL_SIZE_X = int(100*self.RATIO_X)
        self.CELL_SIZE_Y = int(120*self.RATIO_Y)
        self.cell = pygame.transform.scale(self.cell, (self.CELL_SIZE_X, self.CELL_SIZE_Y))
        
        # Подгружаем текстуры инструментов
        self.tools_images = [[pygame.image.load('resources/tools/shovel.png'),
                         pygame.image.load('resources/tools/pick.png')],
                        [pygame.image.load('resources/tools/shovel_right.png'),
                         pygame.image.load('resources/tools/pick_right.png')],     
                        [pygame.image.load('resources/tools/shovel_right_1.png'), 
                         pygame.image.load('resources/tools/pick_right_1.png')],
                        [pygame.image.load('resources/tools/shovel_right_2.png'), 
                         pygame.image.load('resources/tools/pick_right_2.png')],
                        [pygame.image.load('resources/tools/shovel_left.png'),
                         pygame.image.load('resources/tools/pick_left.png')],
                        [pygame.image.load('resources/tools/shovel_left_1.png'),
                         pygame.image.load('resources/tools/pick_left_1.png')],
                        [pygame.image.load('resources/tools/shovel_left_2.png'),
                         pygame.image.load('resources/tools/pick_left_2.png')]]
        for i in range(0, 2):
            self.tools_images[0][i] = pygame.transform.scale(self.tools_images[0][i], (self.TOOLS_INVENT_SIZE_X, self.TOOLS_INVENT_SIZE_Y))  
            
        self.check = pygame.image.load('resources/tools/check.png')
        self.check = pygame.transform.scale(self.check, (self.TOOLS_INVENT_SIZE_X, self.TOOLS_INVENT_SIZE_Y))
        
        # Создаем карту
        self.map = generate_map(self.SEED, self.SIZE, self.H_MAX, self.SHARP, self.DEPTH, self.PROBABILITY) 
        self.biome_map, map = biome_generator(self.SEED, self.DEPTH, self.SIZE, self.map, self.LAKES_NUMBER)
        
        # Создаем персонажа и его рюкзак
        self.player = Player(self.SIZE/2, self.H_0, self.DEPTH, self.SIZE, self.WINDOW_X, self.BLOCK_SIZE)
        self.player.y_calculation(self.map, self.H_MAX)
        self.backpack = Backpack()
        
        # Загружаем музыку
        pygame.mixer.music.load('sounds/background_music.wav')
        
        #Загружаем шрифт
        pygame.font.init()
        self.font_1 = pygame.font.Font(None, 36)
Example #23
0
def run_simulation(args):
    # Init results class for saving the results
    # r = Results()
    if args.verbose:
        util.verbose = True
    # Print start message
    dev_print("Starting simulation")

    # Set simulation variables
    num_of_players = args.players
    # Go through set amount of simulations
    # Start a new game, run it and save the results
    # dev_print(args.trading_range)
    # dev_print(args.upgrading_range)
    strategy = args.strategy
    # for k in range(num_of_players):
    # 	dev_print(np.arange(args.buying_range[k * 3], args.buying_range[k * 3 + 1], args.buying_range[k * 3 + 2]))
    # single_player_param_list = []
    # for params in player_params:
    #
    # 	single_player_param_list.append(generate_combination(num=7, params=params))
    # # dev_print(single_player_param_list)
    # single_player_list = []
    player_combination = None
    if args.mode in [1, 3]:
        strategy_parameter = [[
            args.strategy_parameter[k * 3] +
            args.strategy_parameter[k * 3 + 1] * i
            for i in range(int(args.strategy_parameter[k * 3 + 2]))
        ] for k in range(num_of_players)]
        income = [[
            args.income[k * 3] + args.income[k * 3 + 1] * i
            for i in range(int(args.income[k * 3 + 2]))
        ] for k in range(num_of_players)]
        tax = [[
            args.tax[k * 3] + args.tax[k * 3 + 1] * i
            for i in range(int(args.tax[k * 3 + 2]))
        ] for k in range(num_of_players)]
        b_tax = [[
            args.building_tax[k * 3] + args.building_tax[k * 3 + 1] * i
            for i in range(int(args.building_tax[k * 3 + 2]))
        ] for k in range(num_of_players)]
        start_capital = [[
            args.start_capital[k * 3] + args.start_capital[k * 3 + 1] * i
            for i in range(int(args.start_capital[k * 3 + 2]))
        ] for k in range(num_of_players)]

        player_params = [[
            strategy_parameter[k], income[k], tax[k], start_capital[k],
            b_tax[k]
        ] for k in range(num_of_players)]
        # dev_print(player_params)
        if args.mode == 3:
            single_player_param_list = []
            for params in player_params:
                single_player_param_list.append(
                    generate_combination(num=5, params=params))
            # dev_print(single_player_param_list)
            single_player_list = []
            for num in range(num_of_players):
                tmp = []
                for p in single_player_param_list[num]:
                    tmp.append(
                        Player(num=num,
                               strategy=strategy[num],
                               strategy_para=p[0],
                               income=p[1],
                               tax=p[2],
                               start_capital=p[3],
                               building_tax=p[4]))
                single_player_list.append(tmp)

            player_combination = generate_combination(
                num=num_of_players, params=single_player_list)
        elif args.mode == 1:
            n = int(args.tax[2])
            player_combination = []
            for i in range(n):
                tmp = []
                for num in range(num_of_players):
                    tmp_player = Player(
                        num=num,
                        strategy=strategy[num],
                        strategy_para=strategy_parameter[num][i],
                        income=income[num][i],
                        tax=tax[num][i],
                        start_capital=start_capital[num][i],
                        building_tax=b_tax[num][i])

                    tmp.append(tmp_player)
                player_combination.append(tmp)
    elif args.mode == 2:
        player_combination = []
        para_list = [
            args.strategy_parameter, args.income, args.tax, args.start_capital,
            args.building_tax
        ]
        para_combination = generate_combination(5, para_list)
        for p in para_combination:
            tmp = []
            for i in range(num_of_players):
                tmp.append(
                    Player(num=i,
                           strategy=args.strategy[0],
                           strategy_para=p[0],
                           income=p[1],
                           tax=p[2],
                           start_capital=p[3],
                           building_tax=p[4]))
            player_combination.append(tmp)
    else:
        raise ValueError("Unknown type.")

    count = 1
    last = time.time()
    simulation_list = []
    for players in player_combination:
        cur_simulation_dic = {"settings": {}, "details": {}, "results": {}}
        player_info_lst = []
        for i in range(len(players)):
            cur_player_dic = {
                "strategy": players[i].strategy,
                "strategy_para": players[i].strategy_para,
                "income": players[i].income,
                "tax": players[i].tax,
                "start_capital": players[i].start_capital,
                "building_tax": players[i].building_tax
            }
            player_info_lst.append(cur_player_dic)
        cur_simulation_dic["settings"] = player_info_lst

        total_rounds = 0
        valid_simulation = 0
        if util.verbose:
            log.write("player combination: " + str(players) + "\n")
        for i in range(1, args.number + 1):
            if util.verbose:
                log.write("simulation number" + str(i) + "\n")
            for n in players:
                n.reset()
            g = Game(players, rounds=args.rounds)
            tmp_info_dic = g.run()

            if tmp_info_dic["end"] != -1:
                total_rounds += tmp_info_dic["end"]
                valid_simulation += 1

            cur_simulation_dic["details"][i] = tmp_info_dic
            if i % 100 == 0:
                dev_print(
                    "{} out of {} simulation of combination {} finished.".
                    format(i, args.number, count))

        # r.addHitResults(g.board.hits)

        # Calculate the amount of simulations per second
        now = time.time()
        duration = now - last
        avg_time = duration / args.number
        try:
            avg_round = total_rounds / valid_simulation
        except ZeroDivisionError:
            avg_round = float("inf")
        last = time.time()

        cur_simulation_dic["results"]["avg_time"] = avg_time
        cur_simulation_dic["results"]["avg_round"] = avg_round
        cur_simulation_dic["results"]["total_time"] = duration
        cur_simulation_dic["results"][
            "end_percent"] = valid_simulation / args.number
        # speed = i / (now - start)
        dev_print("ended: ", valid_simulation)
        dev_print("avg_time: ", avg_time)
        dev_print("avg_round: ", avg_round)
        # Display the progress every 1/1000 of the way to begin finished
        dev_print("{} out of {} combination finished.".format(
            count, len(player_combination)))
        count += 1
        simulation_list.append(cur_simulation_dic)
    metadata_dic["simulations"] = simulation_list
    prod_print(json.dumps(metadata_dic) + "\n")
    # Print that the simulation is finished
    dev_print("\nDone!")
Example #24
0
sound_btn = Button(sound_on_img, (24, 24), WIDTH - WIDTH // 4 - 18,
                   HEIGHT // 2 + 50)

# OBJECTS *********************************************************************

tile_group = pygame.sprite.Group()

for i in range(8):
    tile = Tile(i, 1, win)
    tile_group.add(tile)
    tile = Tile(i, 2, win)
    tile_group.add(tile)

particle_group = pygame.sprite.Group()
skull_group = pygame.sprite.Group()
p = Player(win, tile_group)

# FUNCTIONS *******************************************************************

deadly_tiles_list = []


def get_index():
    if p.tile_type == 1:
        indices = [2 * index + 1 for index in range(8)]
    elif p.tile_type == 2:
        indices = [2 * index for index in range(8)]

    index = random.choice(indices)
    return index
Example #25
0
# SOUNDS **********************************************************************

player_bullet_fx = pygame.mixer.Sound('Sounds/gunshot.wav')
click_fx = pygame.mixer.Sound('Sounds/click.mp3')
collision_fx = pygame.mixer.Sound('Sounds/mini_exp.mp3')
blast_fx = pygame.mixer.Sound('Sounds/blast.wav')
fuel_fx = pygame.mixer.Sound('Sounds/fuel.wav')

pygame.mixer.music.load('Sounds/Defrini - Spookie.mp3')
pygame.mixer.music.play(loops=-1)
pygame.mixer.music.set_volume(0.1)

# GROUPS & OBJECTS ************************************************************

bg = Background(win)
p = Player(144, HEIGHT - 100)

enemy_group = pygame.sprite.Group()
player_bullet_group = pygame.sprite.Group()
enemy_bullet_group = pygame.sprite.Group()
explosion_group = pygame.sprite.Group()
fuel_group = pygame.sprite.Group()
powerup_group = pygame.sprite.Group()

# FUNCTIONS *******************************************************************


def shoot_bullet():
    x, y = p.rect.center[0], p.rect.y

    if p.powerup > 0:
Example #26
0
server = "192.168.0.64"
port = 5555

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

try:
    s.bind((server, port))
except socket.error as e:
    str(e)

s.listen(2)
print('Waiting for connection, Server started')

game = Game([
    Player(45, 285, 10, 150, (255, 255, 255)),
    Player(945, 285, 10, 150, (255, 255, 255))
], Ball(465, 330, 25, (255, 255, 255)), -1, 0, 0)


def threaded_client(conn, player):
    global playersCount
    conn.send(str.encode(str(player)))

    while True:
        try:
            data = pickle.loads(conn.recv(2048))
            if not data:
                print('Disconnected')
                break
            else:
Example #27
0
replay_img = pygame.transform.scale(replay_img, (300, 150))

# Music ***************************************
pygame.mixer.music.load('Sounds/rise-and-shine.mp3')
pygame.mixer.music.set_volume(0.5)
pygame.mixer.music.play(loops=-1)

crash_fx = pygame.mixer.Sound('Sounds/car_crash.wav')
horn_fx = pygame.mixer.Sound('Sounds/car_horn.wav')
coin_fx = pygame.mixer.Sound('Sounds/coin_fx.wav')
speeding_fx = pygame.mixer.Sound('Sounds/speeding_fx.wav')

# Objects ***************************************
bg = Background(win)

p = Player(WIDTH // 2 + 50, yoffset + HEIGHT // 2, win)

counter = Counter(win, counter_font)

draw = Draw(win)

# Object positions *******************************

horn_rect = pygame.Rect(xoffset + WIDTH - 50, yoffset + HEIGHT + 20, 85, 80)

start_rect = start_btn.get_rect()
start_rect.x = xoffset + WIDTH // 5
start_rect.y = yoffset + HEIGHT + 50

replay_rect = replay_img.get_rect()
replay_rect.x = xoffset + WIDTH // 4 + 15
Example #28
0
sound_on_img = pygame.image.load("Assets/soundOnBtn.png")

# Buttons ********************************************************************

close_btn = Button(close_img, (24, 24), WIDTH // 4 - 18, HEIGHT // 2 + 120)
replay_btn = Button(replay_img, (36, 36), WIDTH // 2 - 18, HEIGHT // 2 + 115)
sound_btn = Button(sound_on_img, (24, 24), WIDTH - WIDTH // 4 - 18,
                   HEIGHT // 2 + 120)

# GROUP & OBJECTS ************************************************************

flake_group = pygame.sprite.Group()
particle_group = pygame.sprite.Group()
circle_group = pygame.sprite.Group()

p = Player()
d = Dot()
pos = random.randint(0, 11)

# VARIABLES ******************************************************************

clicked = False
rotate = True
shrink = True
sound_on = True

clicks = 0
count = 50
score = 0
high_score = 0
score_list = []
Example #29
0
 def gen_players(self):
     for obj_addr in self.gen_objects_addr():
         if self.pm.read_int(obj_addr + Offset.Object.type) == 4:
             yield Player(self, obj_addr)
Example #30
0
    'Right': pygame.Rect(5, 450, 35, 50)
}

# groups
diamond_group = pygame.sprite.Group()
spike_group = pygame.sprite.Group()
plant_group = pygame.sprite.Group()
board_group = pygame.sprite.Group()
chain_group = pygame.sprite.Group()
groups = [diamond_group, spike_group, plant_group, board_group, chain_group]

data = load_level(current_level)
(player_x, player_y), (portal_x, portal_y) = game_data(current_level)

world = World(win, data, groups)
player = Player(win, (player_x, player_y), world, groups)
portal = Portal(portal_x, portal_y, win)

game_started = False
game_over = False
game_won = False
replay_menu = False
sound_on = True

bgx = 0
bgcounter = 0
bgdx = 1

running = True
while running:
    win.blit(bg, (bgx, 0))