def fDefend(team): """ Formation for one missing field player """ # gets teammate that is chaser (could be me) chaser_mate = team.determineChaser() # if i am chaser if chaser_mate.playerNumber == team.brain.my.playerNumber: team.me.role = PBConstants.CHASER return ["fOneDown"] + Roles.rChaser(team) other_teammates = team.getNonChaserTeammates(chaser_mate) # get fellow teammate who isn't chaser for mate in other_teammates: if not mate.inactive: otherMate = mate else: mate.role = PBConstants.OFFENDER defInfo = Roles.rDefender(team) defPlayer = team.determineSupporter([otherMate], defInfo) if defPlayer.playerNumber == team.brain.my.playerNumber: return ["fOneDownDefend"] + defInfo return ["fOneDownDefend"] + Roles.rMiddie(team)
def fOneDown(team): """ Formation for one missing field player """ # gets teammate that is chaser (could be me) chaser_mate = team.determineChaser() # if i am chaser if chaser_mate.playerNumber == team.brain.my.playerNumber: team.me.role = PBConstants.CHASER return ["fOneDown"] + Roles.rChaser(team) else: other_teammates = team.getNonChaserTeammates(chaser_mate) # If two robots are inactive, we become defender team.me.role = PBConstants.DEFENDER other_teammates[0].role = PBConstants.OFFENDER other_teammates[1].role = PBConstants.MIDDIE return ["fOneDown"] + Roles.rDefender(team)
def fSpread(team): # gets teammate that is chaser (could be me) chaser_mate = team.determineChaser() chaser_mate.role = PBConstants.CHASER # if i am chaser if chaser_mate.playerNumber == team.brain.my.playerNumber: return ["fSpread"] + Roles.rChaser(team) # We now figure out the roles of non-chasers posPlayers = team.getNonChaserTeammates(chaser_mate) # Get where the defender should be defInfo = Roles.rDefender(team) defPlayer = team.determineSupporter(posPlayers, defInfo) if defPlayer.playerNumber == team.brain.my.playerNumber: return ["fSpread"] + defInfo return ["fSpread"] + Roles.rOffender(team)
def fTestDefender(team): return ["fTestDefender"] + Roles.rDefender(team)