def __init__(self, conf_str, team1_conf, team2_conf): self._score = [0, 0] self._is_paused = False self._exceptional_type_problem_happened = [False, False] self._croot = ET.fromstring(conf_str) self._t1_croot = ET.fromstring(team1_conf) self._t2_croot = ET.fromstring(team2_conf) self._board = Board.fromNode(self._croot.find('board')) self._gate = Gate.fromNode(self._croot.find('gate')) self._max_score = [int(self._croot.find('max_score').get('left')), int(self._croot.find('max_score').get('right'))] self._balls_init = [] self._team_players1 = [] self._team_players2 = [] for ball in self._croot.findall('./balls/ball'): bi = "self._balls_init.append(game_objects.Ball([" + \ ball.get('x') + "," + \ ball.get('y') + "]," + \ ball.get('r') + " , game_objects.ball_skin))" exec (bi) self._player_deviation = int(self._croot.find('player_deviation').text) t1_filename = self._t1_croot.find('file_name').text exec ("import " + t1_filename) for pl in self._t1_croot.findall('./players/player'): comm = "self._team_players1.append(game_objects.Player([" + \ pl.get('x') + "," + \ pl.get('y') + "]," + \ pl.get('r') + " , game_objects.first_team_skin, " + \ t1_filename + "." + pl.get('logic') + "() , '" + \ pl.get('name') + \ "'))" exec (comm) t2_filename = self._t2_croot.find('file_name').text exec ("import " + t2_filename) for pl in self._t2_croot.findall('./players/player'): comm = "self._team_players2.append(game_objects.Player([" + \ pl.get('x') + "," + \ pl.get('y') + "]," + \ pl.get('r') + " , game_objects.second_team_skin, " + \ t2_filename + "." + pl.get('logic') + "() , '" + \ pl.get('name') + \ "'))" exec (comm) self.refresh()