Esempio n. 1
0
class Formation:
  """
    Defines formation
  """
  
  def __init__(self):
    self.defence_line_ = Defence()
    self.midfield_line_ = Midfield()
    self.attack_line_ = Attack()
    
  def get(self):
    return {"defence": self.defence_line_, "midfield": self.midfield_line_, "attack": self.attack_line_}
    
  def get_slot_list(self):
    return self.defence_line_.slots() + self.midfield_line_.slots() + self.attack_line_.slots()

  def players_count(self):
    count = 0
    count += self.defence_line_.players_count()
    count += self.midfield_line_.players_count()
    count += self.attack_line_.players_count()
    return count
  
  def player_present(self, player):
    return self.defence_line_.player_present(player) or self.midfield_line_.player_present(player) or self.attack_line_.player_present(player)

  def __str__(self):
    stringa = "defence:  " + str(self.defence_line_)
    stringa += "\nmidfield:  " + str(self.midfield_line_)
    stringa += "\nattack:  " + str(self.attack_line_)
    return stringa

  @staticmethod
  def create_random_formation(schema, team):
    form = Formation()
    idx = 0
    line = schema[0]
    for i in range(0,line):
      slt = form.defence_line_.slots()[i]
      form.defence_line_.set_player(team[idx], slt, "neutral")
      idx += 1
    line = schema[1]
    for i in range(0,line):
      slt = form.midfield_line_.slots()[i]
      form.midfield_line_.set_player(team[idx], slt, "neutral")
      idx += 1
    line = schema[2]
    for i in range(0,line):
      slt = form.attack_line_.slots()[i]
      form.attack_line_.set_player(team[idx], slt, "neutral")
      idx += 1
    return form