Commit 44865588 authored by Matthew Hausknecht's avatar Matthew Hausknecht

Merge pull request #13 from UNiQ10/launch_refactor

Attempt at fixing NPC ghosts
parents c783b3c9 5201d962
...@@ -430,7 +430,7 @@ class Trainer(object): ...@@ -430,7 +430,7 @@ class Trainer(object):
self._numPlayers = len(x) - 4 # -4 for time, ball, goal_l, and goal_r self._numPlayers = len(x) - 4 # -4 for time, ball, goal_l, and goal_r
self.send('(look)') self.send('(look)')
self.registerMsgHandler(f,*partial,quiet=True) self.registerMsgHandler(f,*partial,quiet=True)
while self._numPlayers != 2 * 11: # self._numOffense + self._numDefense: while self._numPlayers != self._numOffense + self._numDefense:
self.listenAndProcess() self.listenAndProcess()
self.ignoreMsg(*partial,quiet=True) self.ignoreMsg(*partial,quiet=True)
...@@ -671,7 +671,7 @@ class Trainer(object): ...@@ -671,7 +671,7 @@ class Trainer(object):
sorted_offense_agent_unums = sorted(self._offenseOrder[1:self._offenseAgents+1]) sorted_offense_agent_unums = sorted(self._offenseOrder[1:self._offenseAgents+1])
defense_unums = self._defenseOrder[: self._numDefense] defense_unums = self._defenseOrder[: self._numDefense]
sorted_defense_agent_unums = sorted(self._defenseOrder[:self._defenseAgents]) sorted_defense_agent_unums = sorted(self._defenseOrder[:self._defenseAgents])
unnecessary_players = [] #unnecessary_players = []
# Launch offense # Launch offense
agent_num = 0 agent_num = 0
...@@ -685,11 +685,15 @@ class Trainer(object): ...@@ -685,11 +685,15 @@ class Trainer(object):
agent_num += 1 agent_num += 1
else: else:
player = self.launch_player(player_num, play_offense = True) player = self.launch_player(player_num, play_offense = True)
time.sleep(0.15)
if player_num in offense_unums: if player_num in offense_unums:
self._npcPopen.append(player) self._npcPopen.append(player)
necProcesses.append([player, 'offense_npc_' + str(player_num)]) necProcesses.append([player, 'offense_npc_' + str(player_num)])
else: else:
unnecessary_players.append(player) player.terminate()
time.sleep(0.1)
continue
#unnecessary_players.append(player)
self.waitOnPlayer(player_num, on_offense=True) self.waitOnPlayer(player_num, on_offense=True)
self.waitOnTeam(first = False) self.waitOnTeam(first = False)
...@@ -705,11 +709,15 @@ class Trainer(object): ...@@ -705,11 +709,15 @@ class Trainer(object):
agent_num += 1 agent_num += 1
else: else:
player = self.launch_player(player_num, play_offense = False) player = self.launch_player(player_num, play_offense = False)
time.sleep(0.15)
if player_num in defense_unums: if player_num in defense_unums:
self._npcPopen.append(player) self._npcPopen.append(player)
necProcesses.append([player, 'defense_npc_' + str(player_num)]) necProcesses.append([player, 'defense_npc_' + str(player_num)])
else: else:
unnecessary_players.append(player) player.terminate()
time.sleep(0.1)
continue
#unnecessary_players.append(player)
self.waitOnPlayer(player_num, on_offense=False) self.waitOnPlayer(player_num, on_offense=False)
self.waitOnTeam(first = False) self.waitOnTeam(first = False)
self.checkIfAllPlayersConnected() self.checkIfAllPlayersConnected()
...@@ -722,9 +730,9 @@ class Trainer(object): ...@@ -722,9 +730,9 @@ class Trainer(object):
self.listenAndProcess(1000) self.listenAndProcess(1000)
# Terminate unnecessary players # Terminate unnecessary players
print '[Trainer] Removing unnecessary players' #print '[Trainer] Removing unnecessary players'
for player in unnecessary_players: #for player in unnecessary_players:
player.terminate() # player.terminate()
# Broadcast the HFO configuration # Broadcast the HFO configuration
offense_nums = ' '.join([str(self.convertToExtPlayer(self._offenseTeamName, i)) offense_nums = ' '.join([str(self.convertToExtPlayer(self._offenseTeamName, i))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment