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 fKickoffPlay(team): """time immediately after kickoff""" if team.brain.my.playerNumber == 2: return ["fKickoffPlay", PBConstants.DEFENDER] + SubRoles.pKickoffPlaySweeper(team) elif team.brain.my.playerNumber == 3: return ["fKickoffPlay"] + Roles.rChaser(team) # elif team.brain.my.playerNumber == 4: else: return ["fKickoffPlay", PBConstants.OFFENDER] + SubRoles.pKickoffPlayStriker(team)
def fTwoKickoff(team): """ Kickoff for only two field players """ other_teammate = team.getOtherActiveTeammate() if team.me.playerNumber > other_teammate.playerNumber: team.me.role = PBConstants.CHASER return ["fTwoKickoff"] + (Roles.rChaser(team)) else: team.me.role = PBConstants.DEFENDER return ["fTwoKickoff", PBConstants.DEFENDER] + SubRoles.pKickoffSweeper(team)
def fKickoff(team): """time immediately after kickoff""" if team.me.playerNumber == 2: team.me.role = PBConstants.DEFENDER return ["fKickoff", PBConstants.DEFENDER] + SubRoles.pKickoffSweeper(team) elif team.me.playerNumber == 3: team.me.role = PBConstants.CHASER return ["fKickoff"] + Roles.rChaser(team) elif team.playerNumber == 4: team.me.role = PBConstants.OFFENDER return ["fKickoff", PBConstants.OFFENDER] + SubRoles.pKickoffStriker(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 fTwoDown(team): """ Formation for missing two robots """ return ["fTwoDown"] + Roles.rChaser(team)
def fTestChaser(team): return ["fTestChaser"] + Roles.rChaser(team)
def fOneKickoff(team): """ kickoff for only having one field player """ team.me.role = PBConstants.CHASER return ["fOneKickoff"] + Roles.rChaser(team)