示例#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)
示例#2
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)
示例#3
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)
示例#4
0
def fTestDefender(team):
    return ["fTestDefender"] + Roles.rDefender(team)