def aller_vers_but(self): essai = MyState(self.state, self.idt, self.idp) if essai.est_team1(): return SoccerAction(POS_DEFAUT - essai.my_position, Vector2D(3.14, 20)) return SoccerAction(POS_DEFAUT2 - essai.my_position, Vector2D(6.18, 20))
def aller_vers_balle_condition(self): mystate = MyState(self.state, self.idt, self.idp) #if( mystate.est_team1(self)): liste_players = self.idt.nb_players #team1.nb_players #else: # liste_players = team2.nb_players distance_self = mystate.distance_ball_player for player in liste_players: distance = mystate.ball_position - mystate.my_position( liste_players[player]) if distance <= mystate.PR_BR: return SoccerAction(mystate.en_attente) return SoccerAction(mystate.distance_ball_player, Vector2D(angle=3.14, norm=55))
def dribbler(self): pos = Position(self.state, self.idt, self.idp) mystate = MyState(self.state, self.idt, self.idp) liste_adversaire = [] for i in pos.position_tout_les_joueurs(): if self.idt == mystate.adv(): liste_adversaire.append(i) for j in range(0, len(liste_adversaire)): if (pos.joueur_le_plus_proche(1).x == liste_adversaire[j].x) and ( pos.joueur_le_plus_proche(1).y == liste_adversaire[j].y): SoccerAction(((liste_adversaire[j]) + Vector2D(10, 0)) - mystate.myposition, Vector2D(angle=0, norm=10))
def passe_test(self, state, id_team, id_player): posi = Position(self.state, self.idt, self.idp) mystate = MyState(self.state, self.idt, self.idp) proche = posi.joueur_le_plus_proche(self) joueurlpp = posi.joueur_le_plus_proche() # if Qui_a_la_balle.j_ai_la_balle == True: # #return SoccerAction(proche-mystate.ball_position,Vector2D(angle= 10)) # return SoccerAction(state.ball.position-state.player_state(id_team,id_player).position ,\ # Vector2D((2-id_team)*settings.GAME_WIDTH,settings.GAME_HEIGHT/2.)-state.ball.position) # else: return SoccerAction() #SoccerAction(mystate.distance_ball_player)
def shoot(self, p): return SoccerAction(Vector2D(), p - self.my_position, Vector2D())
def aller(self, p): return SoccerAction(p - self.my_position, Vector2D())
def aller_vers_balle(self): mystate = MyState(self.state, self.idt, self.idp) return SoccerAction(mystate.distance_ball_player, Vector2D(angle=3.14, norm=55))
def pos_attaquant(self): return SoccerAction( Vector2D(10, GAME_WIDTH - 60) - (self.state.player_state(self.idt, self.idp)).position)
def en_attente(self): return SoccerAction()
def passe(state, id_team, id_player) : for palyer in [ (it, ip) for (it, ip) in state.players if it == id_team] : if (est_demarque(state, it, ip)): return SoccerAction (acceleration = Vector2D(0,0), shoot = Vector2D(state.palyer(it, ip).position.x - state.player_state(id_team, id_player).position.x, state.palyer(it, ip).position.y - state.player_state(id_team, id_player).position.y)) return SoccerAction()
def shoot (state, id_team, id_player, X, Y): if (id_team == 2): return SoccerAction (acceleration = Vector2D(0,0), shoot = Vector2D(-(X - state.player_state(id_team, id_player).position.x), Y - state.player_state(id_team, id_player).position.y)) if (id_team == 1): return SoccerAction (acceleration = Vector2D(0,0), shoot = Vector2D( X - state.player_state(id_team, id_player).position.x, Y - state.player_state(id_team, id_player).position.y))
def suivre_ball (state, id_team, id_player): return SoccerAction (acceleration = state.ball.position - state.player_state(id_team, id_player).position, shoot = Vector2D(0,0))