Exemplo n.º 1
0
    def right_click(self, pos):
        """ Ce qu'il se passe en cas de clic droit """
        # On cherche un soldat selectionné
        for member in self.members:
            if member.selected:
                # On vérifie si on a cliqué sur un ennemi
                for mob in self.mobs:
                    if mob.hitbox.collidepoint(pos):
                        member.set_target(mob)

                    else:
                        # C'est un clic droit de déplacement
                        locked = TileGroup()

                        # On cherche les positions des alliés et des ennemis

                        for ally in self.members:
                            locked.append(ally.tile.copy())
                        for mob in self.mobs:
                            locked.append(mob.tile.copy())

                        new_tile = Tile([int(pos[0] / 32), int(pos[1] / 32)])
                        if new_tile not in locked and new_tile not in self.walls:
                            member.path = pathfinder(
                                self.walls, [self.map_width, self.map_height],
                                member.tile, new_tile)
                            member.destination = new_tile
Exemplo n.º 2
0
	def __init__(self, ants, logger, game_state):
		self.ants = ants
		self.logger = logger
		self.game_state = game_state
		self.dir_rotation = [('n','e','s','w'),
							 ('e','s','w','n'),
							 ('s','w','n','e'),
							 ('w','n','e','s')]
		self.dir_current = 0
		self.pathfinder = pathfinder(ants, logger, game_state)
Exemplo n.º 3
0
	def __init__(self, ants, logger, game_state):
		self.ants = ants
		self.logger = logger
		self.game_state = game_state
		self.dir_rotation = [('n','e','s','w','m'),
							 ('e','s','w','m','n'),
							 ('s','w','m','n','e'),
							 ('w','m','n','e','s'),
							 ('m','n','e','s','w')]
							 
		self.aim = {'n': (-1, 0),
					'e': (0, 1),
					's': (1, 0),
					'w': (0, -1),
					'm': (0, 0)}							 
		
		self.dir_current = 0
		self.pathfinder = pathfinder(ants, logger, game_state)
Exemplo n.º 4
0
    def update_ia(self, mob):
        """ Gère l'intelligence artificielle des mobs """
        # On met à jour le mob
        mob.update(self.map, self.walls, self.log,
                   [self.map_width, self.map_height])

        # On vérifie si le mob est à couvert
        if mob.tile in self.covers:
            mob.going_to_cover = False
            # Le mob est à couvert, on vérifie s'il a une cible
            for member in self.members:
                if member.is_ko():
                    pass
                elif mob.target is False:
                    mob.set_target(member)
                else:
                    if mob.tile.get_distance(
                            member.tile) < mob.tile.get_distance(
                                mob.target.tile):
                        # Le mob tire sur le joueur le plus proche
                        mob.set_target(member)
        # Le mob est à découvert, on vérifie s'il n'est pas déjà entrain de bouger
        elif mob.going_to_cover is False:
            # TODO : Verrouiller les positions déjà occupées
            # On cherche la position à couvert la plus proche
            best_cover = False
            for cover in self.covers:
                if best_cover is False:
                    best_cover = cover
                elif mob.tile.get_distance(cover) < mob.tile.get_distance(
                        best_cover):
                    best_cover = cover
            """ Couvert trouvé """

            mob.destination = best_cover
            mob.path = pathfinder(self.walls,
                                  [self.map_width, self.map_height],
                                  mob.tile.copy(), best_cover)
            mob.going_to_cover = True
Exemplo n.º 5
0
while (confirmation == 'Y'):
    k = int(input("Enter a k: "))
    maxServer = int(math.pow(k, 3) / 4)

    vm_pair = int(input('Enter in how many VM pairs you would like: '))
    f = int(input("Enter f: "))

    pm_id = [*range(0, maxServer, 1)]
    #print(pm_id)
    source = []
    dest = []

    total_comm_cost = 0
    for a in range(0, vm_pair):
        pair = random.sample(pm_id, 2)
        source.append(pair[0])
        dest.append(pair[1])

    print('source list: ', source)
    print('dest list: ', dest)
    pd.set_option("display.max_rows", None, "display.max_columns", None)

    graph, maxV = info_fattree_graph(k, maxServer)
    for a in range(0, vm_pair):
        #print(source[a], dest[a])
        total_comm_cost = total_comm_cost + pathfinder(
            source[a], dest[a], graph, maxServer, maxV, k, f)

    print('Total Communication cost will be:', total_comm_cost)
    confirmation = str(input('Start over? Y/N')).upper()
    print(confirmation)
Exemplo n.º 6
0
	def __init__(self, ants, logger, game_state):
		self.ants = ants
		self.logger = logger
		self.game_state = game_state		
		self.directions = ('n','e','s','w')
		self.pathfinder = pathfinder(ants, logger, game_state)