Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
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)
Beispiel #4
0
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)
Beispiel #5
0
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)
Beispiel #6
0
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)
Beispiel #7
0
def fTwoDown(team):
    """
    Formation for missing two robots
    """
    return ["fTwoDown"] + Roles.rChaser(team)
Beispiel #8
0
def fTestChaser(team):
    return ["fTestChaser"] + Roles.rChaser(team)
Beispiel #9
0
def fOneKickoff(team):
    """
    kickoff for only having one field player
    """
    team.me.role = PBConstants.CHASER
    return ["fOneKickoff"] + Roles.rChaser(team)