def se_positionner_haut(mystate):
    action = Action(mystate)
    if (mystate.position_mon_but.x == GAME_WIDTH):
        return action.sprint(
            Vector2D(0.35 * GAME_WIDTH, mystate.ball_position.y))

    if (mystate.position_mon_but.x == 0):
        return action.sprint(
            Vector2D(0.65 * GAME_WIDTH, mystate.ball_position.y))
def shoot_but(mystate):
    act = Action(mystate)
    x = mystate.ball_position.distance(mystate.position_but_adv)
    sh = Shootameliorer(mystate, x)
    if mystate.my_position.distance(
            mystate.ball_position) < 1.65 and mystate.my_position.distance(
                mystate.position_but_adv) < GAME_WIDTH / 2:
        return sh.shoot
    if mystate.my_position.distance(mystate.ball_position) < 1.65:
        return act.shoot_but_adv
    return fonceurball(mystate)
Exemplo n.º 3
0
 def compute_strategy(self,state,id_team,id_player):
     mystate= MyState(state,id_team,id_player)
     action=Action(mystate)
     x=mystate.ball_position.distance(Vector2D(GAME_WIDTH,GAME_HEIGHT/2)-mystate.my_position)
     zone=state.get_zones(mystate.my_team)
     if len(zone)==0:
         if mystate.my_position.distance(mystate.ball_position)<1.6:
             if mystate.my_position.distance(Vector2D(GAME_WIDTH,GAME_HEIGHT/2))<(1/.4)*GAME_WIDTH:
                 return SoccerAction(Vector2D(),(Vector2D(GAME_WIDTH,GAME_HEIGHT/2)-mystate.my_position).norm_max(1))
             return SoccerAction(Vector2D(),Vector2D(GAME_WIDTH,GAME_HEIGHT/2)-mystate.my_position)
         return SoccerAction(mystate.ball_position-mystate.my_position,Vector2D())
     z=zone[0]
     
     
     if mystate.ball_position.distance(z.position+z.l/2)<z.l/2:
         return donothing()
     if mystate.my_position.distance(mystate.ball_position)<1.6:
          if mystate.ball_position.distance(z.position+z.l/2)<2*z.l:
              return SoccerAction(Vector2D(),(z.position+z.l/2-mystate.my_position).norm_max(0.05))
          return action.petit_shoot_zone(z.position+z.l/2)
     return SoccerAction(mystate.ball_position-mystate.my_position,Vector2D())
Exemplo n.º 4
0
 def compute_strategy(self, state, id_team, id_player):
     mystate = MyState(state, id_team, id_player)
     action = Action(mystate)
     self.mydic["c"] += 1
     if mystate.my_position.distance(mystate.ball_position) < 1.65:
         return (action.shoot_but_adv)
     # if mystate.my_position.distance(mystate.ball_position)<3:
     # return ralentir_bcp(mystate,action)
     # if mystate.my_position.distance(mystate.ball_position)<7:
     # return ralentir_moyen(mystate,action)
     # if mystate.my_position.distance(mystate.ball_position)<9:
     # return ralentir_peu(mystate,action)
     return fonceurball(mystate)
def shoot_but(mystate):
    act = Action(mystate)
    x = mystate.ball_position.distance(mystate.position_but_adv)
    sh = Shootameliorer(mystate, x)
    if mystate.my_position.distance(
            mystate.ball_position) < 1.65 and mystate.my_position.distance(
                mystate.position_but_adv) < GAME_WIDTH / 2:
        return sh.shoot
    if mystate.my_position.distance(mystate.ball_position) < 1.65:
        return act.shoot_but_adv
    if mystate.my_position.distance(mystate.ball_position) < 10:
        return SoccerAction(
            mystate.ball_position - mystate.my_position +
            (mystate.ball_vitesse), Vector2D())
    return fonceurball(mystate)
Exemplo n.º 6
0
    def compute_strategy(self, state, id_team, id_player):
        mystate = MyState(state, id_team, id_player)
        action = Action(mystate)
        self.mydic["c"] += 1
        if self.mydic["c"] < 0:
            return donothing()

        if mystate.my_position.distance(mystate.ball_position) < 1.65:
            if (mystate.position_mon_but.distance(mystate.ball_position) >
                    GAME_WIDTH * 0.35 and mystate.position_mon_but.distance(
                        mystate.ball_position) < GAME_WIDTH * 0.65):
                return (action.petit_shoot_but_adv)
            return (action.shoot_but_adv)

        if mystate.my_position.distance(mystate.ball_position) < 10:
            return fonceurballdef(mystate)

        if (mystate.position_mon_but.x == GAME_WIDTH):
            if (mystate.position_mon_but.distance(mystate.ball_position) <
                    GAME_WIDTH * 0.25):
                return action.sprint(
                    Vector2D(0.65 * GAME_WIDTH, mystate.ball_position.y))
            if (mystate.position_mon_but.distance(mystate.ball_position) <=
                    GAME_WIDTH / 2):
                return action.sprint(
                    Vector2D(0.5 * GAME_WIDTH, mystate.ball_position.y))

        if (mystate.position_mon_but.x == 0):
            if (mystate.position_mon_but.distance(mystate.ball_position) <
                    GAME_WIDTH * 0.45):
                return action.sprint(
                    Vector2D(0.55 * GAME_WIDTH, mystate.ball_position.y))

            if (mystate.position_mon_but.distance(mystate.ball_position) <=
                    GAME_WIDTH / 2):
                return action.sprint(
                    Vector2D(0.5 * GAME_WIDTH, mystate.ball_position.y))

        return fonceurball(mystate)
def dribble(mystate):
    action = Action(mystate)
    if mystate.my_position.distance(mystate.ball_position) < 1.65:
        return action.petit_shoot_but_adv
    return fonceurball(mystate)
def passe_pote(mystate):
    action = Action(mystate)
    if mystate.my_position.distance(mystate.ball_position) < 1.65:
        return action.petit_shoot_joueur_proche
    return fonceurball(mystate)
Exemplo n.º 9
0
 def compute_strategy(self, state, id_team, id_player):
     mystate = MyState(state, id_team, id_player)
     action = Action(mystate)
     return defonceur(mystate, action)