示例#1
0
async def impostorwin(ctx, *args):
    data = AmongUsData.from_dict(
        connection_manager.get_data('AmongUs',
                                    PlayerData(ctx.message.author.id)),
        ctx.message.author.id)
    data.modify(AmongUsData.IMPOSTOR_WIN, AmongUsData.increase, 1)
    connection_manager.update_stats_user('AmongUs',
                                         PlayerData(ctx.message.author.id),
                                         data)
    await ctx.send(f'Your impostor win amount is now {data.impostor_wins}.')
示例#2
0
async def crewloss(ctx, *args):
    data = AmongUsData.from_dict(
        connection_manager.get_data('AmongUs',
                                    PlayerData(ctx.message.author.id)),
        ctx.message.author.id)
    data.modify(AmongUsData.CREW_LOSS, AmongUsData.increase, 1)
    connection_manager.update_stats_user('AmongUs',
                                         PlayerData(ctx.message.author.id),
                                         data)
    await ctx.send(f'Your crewmate loss amount is now {data.crew_mate_losses}.'
                   )
示例#3
0
 def to_dict(self):
     player_dict = PlayerData.to_dict(self)
     player_dict.update({
         'crew_mate_wins': self.crew_mate_wins,
         'crew_mate_losses': self.crew_mate_losses,
         'impostor_wins': self.impostor_wins,
         'impostor_losses': self.impostor_losses
     })
     return player_dict
示例#4
0
    def __init__(self, date, data_dir):
        '''
        Initialize with the date for which the algorithm should be run and the directory where
        the historical data is kept
        :param date: the date for which the algorithm is run
        :param data_dir: the location of the historical data
        '''

        # basic parameters
        self.date = date
        self.data_dir = data_dir

        # computed data as list of (MLB_ID, value) tuples
        self.results = {}

        # get the stats for this date
        try:
            self.player_data = PlayerData(self.date, self.data_dir)
        except Exception as e:
            raise
示例#5
0
 def __init__(self, id, crew_mate_wins=0, crew_mate_losses=0, impostor_wins=0, impostor_losses=0):
     PlayerData.__init__(self, id)
     self.crew_mate_wins = crew_mate_wins
     self.crew_mate_losses = crew_mate_losses
     self.impostor_wins = impostor_wins
     self.impostor_losses = impostor_losses
示例#6
0
    def game_board(self, board, player_one, player_two, player_types, ai_difficulty=None):

        from player_data import PlayerData

        pd=PlayerData()

        if 'AI' in player_types:
            from ai import AI
            ai=AI()
            if 'AI: Easy' in [player_one,player_two]:
                ai.difficulty=0
            elif 'AI: Medium' in [player_one,player_two]:
                ai.difficulty=1
            elif 'AI: Hard' in [player_one,player_two]:
                ai.difficulty=2

        sdl2ext.init()

        window = sdl2ext.Window("c4o5x5", size=(320, 420))

        window.show()

        factory = sdl2ext.SpriteFactory(sdl2ext.SOFTWARE)

        spriterenderer = factory.create_sprite_render_system(window)

        moves = 0
        running = True
        updated_p1 = False
        updated_p2 = False

        while running:
            if moves % 2 == 0:
                this_player = player_one
                that_player = player_two
                if player_types[0]=='AI':
                    mode='AI'
                    player_graphic="ai.bmp"
                else:
                    mode='Human'
                    player_graphic = "player_one.bmp"
            if moves % 2 == 1:
                this_player = player_two
                that_player = player_one
                if player_types[1]=='AI':
                    mode='AI'
                    player_graphic="ai.bmp"
                else:
                    mode='Human'
                    player_graphic = "player_two.bmp"
            for x in range(5):
                for y in range(5):
                    if board.marks[x][y] is None:
                        spriterenderer.render(factory.from_image(self.RESOURCES.get_path("tile.bmp")),x*64,y*64)
                    if board.marks[x][y] == player_one:
                        spriterenderer.render(factory.from_image(self.RESOURCES.get_path("tile_o.bmp")),x*64,y*64)
                    if board.marks[x][y] == player_two:
                        spriterenderer.render(factory.from_image(self.RESOURCES.get_path("tile_x.bmp")),x*64,y*64)
            if board.check_winning_positions() != (False,False):
                winning_player = board.check_winning_positions()[0]
                if winning_player == player_one:
                    winning_graphic = 'player_one_wins.bmp'
                    if player_one != 'Guest' and not updated_p1:
                        player=pd.load_player(player_one)
                        pd.update_player(player_one,player.wins+1,player.losses)
                        updated_p1 = True
                    if player_two != 'Guest' and not updated_p2:
                        player=pd.load_player(player_two)
                        pd.update_player(player_two,player.wins,player.losses+1)
                        updated_p2=True
                elif winning_player == player_two:
                    winning_graphic = 'player_two_wins.bmp'
                    if player_one != 'Guest' and not updated_p2:
                        player=pd.load_player(player_two)
                        pd.update_player(player_two,player.wins+1,player.losses)
                        updated_p2=True
                    if player_two != 'Guest' and not updated_p1:
                        player=pd.load_player(player_one)
                        pd.update_player(player_one,player.wins,player.losses+1)
                        updated_p1=True
                spriterenderer.render(factory.from_image(self.RESOURCES.get_path(winning_graphic)),0,(x+1)*64)
                events = sdl2ext.get_events()
                for event in events:
                    if event.type == SDL_MOUSEBUTTONDOWN:
                        running = False
                        SDL_Delay(1000)
                        break
            elif moves == 25:
                winning_graphic = "tie_game.bmp"
                spriterenderer.render(factory.from_image(self.RESOURCES.get_path(winning_graphic)),0,(x+1)*64)
                events = sdl2ext.get_events()
                for event in events:
                    if event.type == SDL_MOUSEBUTTONDOWN:
                        running = False
                        break
            elif mode == 'Human':
                spriterenderer.render(factory.from_image(self.RESOURCES.get_path(player_graphic)),0,(x+1)*64)
                events = sdl2ext.get_events()
                for event in events:
                    if event.type == SDL_QUIT:
                        running = False
                        break
                    elif event.type == SDL_MOUSEBUTTONDOWN:
                        x_pos = int(event.button.x/64)
                        y_pos = int(event.button.y/64)
                        if x_pos <= 4 and y_pos <= 4 and board.marks[x_pos][y_pos] is None:
                            board.marks[x_pos][y_pos]=this_player
                            moves = moves + 1
            elif mode=='AI':
                move = ai.make_move(board,this_player,that_player)
                moves = moves + 1
                board.update_position(move[0],move[1],this_player)
                for x in range(5):
                    for y in range(5):
                        if board.marks[x][y] is None:
                            spriterenderer.render(factory.from_image(self.RESOURCES.get_path("tile.bmp")),x*64,y*64)
                        if board.marks[x][y] == player_one:
                            spriterenderer.render(factory.from_image(self.RESOURCES.get_path("tile_o.bmp")),x*64,y*64)
                        if board.marks[x][y] == player_two:
                            spriterenderer.render(factory.from_image(self.RESOURCES.get_path("tile_x.bmp")),x*64,y*64)
                spriterenderer.render(factory.from_image(self.RESOURCES.get_path(player_graphic)),0,(x+1)*64)
                SDL_Delay(500)
                events = sdl2ext.get_events()
                for event in events:
                    if event.type == SDL_QUIT:
                        running = False
                        break
                    else:
                        pass
            else:
                raise Exception
            SDL_Delay(10)

        sdl2ext.quit()
示例#7
0
async def getimpostorwin(ctx, *args):
    data = AmongUsData.from_dict(
        connection_manager.get_data('AmongUs',
                                    PlayerData(ctx.message.author.id)),
        ctx.message.author.id)
    await ctx.send(f'Your impostor win amount is {data.impostor_wins}.')
示例#8
0
async def getcrewloss(ctx, *args):
    data = AmongUsData.from_dict(
        connection_manager.get_data('AmongUs',
                                    PlayerData(ctx.message.author.id)),
        ctx.message.author.id)
    await ctx.send(f'Your crewmate loss amount is {data.crew_mate_losses}.')