本文整理汇总了Python中RoleConstants.isStriker方法的典型用法代码示例。如果您正苦于以下问题:Python RoleConstants.isStriker方法的具体用法?Python RoleConstants.isStriker怎么用?Python RoleConstants.isStriker使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RoleConstants
的用法示例。
在下文中一共展示了RoleConstants.isStriker方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: watchForBall
# 需要导入模块: import RoleConstants [as 别名]
# 或者: from RoleConstants import isStriker [as 别名]
def watchForBall(player):
"""
The player is at home, waiting for the ball to be within box.
"""
if player.firstFrame():
# print "-----------Player at home - Watching for ball-----------"
player.brain.tracker.trackBall()
player.brain.nav.stand()
# I commented this out because we were getting strange oscillations
# between this and positonAtHome, and honestly we never go here unless
# we are already at home... dumb...
# if transitions.tooFarFromHome(player, 50, 20):
# return player.goLater('positionAtHome')
if role.isFirstChaser(player.role):
if player.stateTime >= tracking.INITIALIZE_HEADING_TIME + tracking.FULL_WIDE_PAN_TIME:
return player.goNow('spinAtHome')
elif role.isStriker(player.role):
if player.stateTime >= tracking.INITIALIZE_HEADING_TIME + tracking.FULL_WIDE_PAN_TIME * 2:
return player.goNow('spinAtHome')
else:
if player.stateTime >= tracking.INITIALIZE_HEADING_TIME + tracking.FULL_WIDE_PAN_TIME * 2:
return player.goNow('spinAtHome')
示例2: calculateHomePosition
# 需要导入模块: import RoleConstants [as 别名]
# 或者: from RoleConstants import isStriker [as 别名]
def calculateHomePosition(player):
"""
Calculate home position.
"""
# We've seen the ball recently enough
if player.brain.ball.vis.frames_off < 20:
ball = player.brain.ball
bearing = ball.bearing_deg
elif player.brain.sharedBall.ball_on:
ball = player.brain.sharedBall
bearing = degrees(atan2(ball.y - player.brain.loc.y,
ball.x - player.brain.loc.x)) - player.brain.loc.h
else:
ball = None
if ball != None and not (role.isDefender(player.role) and NogginConstants.FIXED_D_HOME):
if role.isLeftDefender(player.role):
home = findDefenderHomeWithBall(player, True, ball, bearing + player.brain.loc.h)
elif role.isRightDefender(player.role):
home = findDefenderHomeWithBall(player, False, ball, bearing + player.brain.loc.h)
elif role.isStriker(player.role):
home = findStrikerHome(ball, bearing + player.brain.loc.h)
else:
home = player.homePosition
else:
if role.isLeftDefender(player.role):
home = findDefenderHomeNoBall(player, True)
elif role.isRightDefender(player.role):
home = findDefenderHomeNoBall(player, False)
else:
home = player.homePosition
return home
示例3: tooFarFromHome
# 需要导入模块: import RoleConstants [as 别名]
# 或者: from RoleConstants import isStriker [as 别名]
def tooFarFromHome(threshold, player):
"""
Returns true if LOC thinks we're more than *distance* away from our home
position
"""
if player.brain.ball.vis.frames_off < 10:
ball = player.brain.ball
elif player.brain.sharedBall.ball_on:
ball = player.brain.sharedBall
else:
ball = None
home = player.homePosition
if ball != None:
if role.isLeftDefender(player.role):
home = findDefenderHome(True, ball, player.homePosition.h)
elif role.isRightDefender(player.role):
home = findDefenderHome(False, ball, player.homePosition.h)
elif role.isStriker(player.role):
home = findStrikerHome(ball, player.homePosition.h)
else:
home = player.homePosition
distance = ((player.brain.loc.x - home.x) ** 2 + (player.brain.loc.y - home.y) ** 2) ** 0.5
return distance > threshold
示例4: branchOnRole
# 需要导入模块: import RoleConstants [as 别名]
# 或者: from RoleConstants import isStriker [as 别名]
def branchOnRole(player):
"""
Chasers are going to have a different behavior again.
We will branch on behavior based on role here
"""
# print "----------In branch on role----------"
# print "Entered Branch on Role"
# print "----- evenDefenderIsForward, lastEvenDefenderForwardVal ----"
# print player.brain.evenDefenderIsForward, lastEvenDefenderForwardVal
# global lastEvenDefenderForwardVal
# player.brain.evenDefenderIsForward = not lastEvenDefenderForwardVal
# newEvenDefenderForwardVal = True
# print("TIME SINCE PLAYING:", player.brain.gameController.timeSincePlaying)
if role.isFirstChaser(player.role):
if transitions.shouldFindSharedBall(player) and player.brain.gameController.timeSincePlaying > 75:
return player.goNow('searchFieldForSharedBall')
return player.goNow('playerFourSearchBehavior')
elif role.isStriker(player.role):
return player.goNow('playerFiveSearchBehavior')
elif role.isLeftDefender(player.role):
# print "Player Brain Left Forward 1: " + str(leftDefenderIsForward)
# if (player.brain.sharedBall.ball_on) and (player.brain.sharedBall.x < NogginConstants.MIDFIELD_X):
# print "WE ARE IN HERE"
# return player.goNow('leftDefenderBack')
if leftDefenderIsForward:
# print "Changing to False"
global leftDefenderIsForward
leftDefenderIsForward = False
# print "Player Brain Left Forward 2: " + str(leftDefenderIsForward)
return player.goNow('leftDefenderForward')
else:
# print "Changing to True"
global leftDefenderIsForward
leftDefenderIsForward = True
# print "Player Brain Left Forward 3: " + str(leftDefenderIsForward)
return player.goNow('leftDefenderBack')
else:
return player.goNow('positionAtHome')
示例5: getSupporterPosition
# 需要导入模块: import RoleConstants [as 别名]
# 或者: from RoleConstants import isStriker [as 别名]
def getSupporterPosition(player, r):
"""
Returns a position to stand at to support teammate who is chasing the ball.
Used in positionAsSupporter in PlayOffBallStates.
"""
if role.isLeftDefender(r):
return leftDefender(player)
elif role.isRightDefender(r):
return rightDefender(player)
elif role.isFirstChaser(r):
return chaser(player)
elif role.isStriker(r):
return striker(player)
else: # cherry picker
return cherryPicker(player)
示例6: doPan
# 需要导入模块: import RoleConstants [as 别名]
# 或者: from RoleConstants import isStriker [as 别名]
def doPan(player):
"""
Wide pan for 5 seconds.
"""
if player.firstFrame():
# print "------------Doing Pan-------------"
player.stand()
player.brain.tracker.trackBall()
if player.stateTime >= tracking.INITIALIZE_HEADING_TIME + tracking.FULL_WIDE_PAN_TIME:
if role.isFirstChaser(player.role):
return player.goNow('playerFourSearchBehavior')
elif role.isStriker(player.role):
return player.goNow('playerFiveSearchBehavior')
else:
return player.goNow('doSecondHalfSpin')
示例7: positionAtHome
# 需要导入模块: import RoleConstants [as 别名]
# 或者: from RoleConstants import isStriker [as 别名]
def positionAtHome(player):
"""
Go to the player's home position. Defenders look in the direction of the
shared ball if it is on with reliability >= 2. Cherry pickers look in the direction
of the shared ball if it is on with reliability >= 1.
"""
if role.isFirstChaser(player.role) and transitions.shouldFindSharedBall(player):
return player.goLater('searchFieldForSharedBall')
if player.brain.ball.vis.frames_off < 10:
ball = player.brain.ball
bearing = ball.bearing_deg
elif player.brain.sharedBall.ball_on:
ball = player.brain.sharedBall
bearing = degrees(atan2(ball.y - player.brain.loc.y,
ball.x - player.brain.loc.x)) - player.brain.loc.h
else:
ball = None
home = player.homePosition
if ball != None:
if role.isLeftDefender(player.role):
home = findDefenderHome(True, ball, bearing + player.brain.loc.h)
elif role.isRightDefender(player.role):
home = findDefenderHome(False, ball, bearing + player.brain.loc.h)
elif role.isStriker(player.role):
home = findStrikerHome(ball, bearing + player.brain.loc.h)
else:
home = player.homePosition
if player.firstFrame():
if role.isCherryPicker(player.role):
player.brain.tracker.repeatBasicPan()
else:
player.brain.tracker.trackBall()
fastWalk = role.isChaser(player.role)
player.brain.nav.goTo(home, precision = nav.HOME,
speed = nav.QUICK_SPEED, avoidObstacles = True,
fast = fastWalk, pb = False)
player.brain.nav.updateDest(home)
示例8: panAtWayPoint
# 需要导入模块: import RoleConstants [as 别名]
# 或者: from RoleConstants import isStriker [as 别名]
def panAtWayPoint(player):
if player.firstFrame():
player.stand()
player.brain.tracker.trackBall()
# if role.isFirstChaser(player.role) and not playerFourSearchBehavior.pointIndex % len(playerFourPoints) == 0:
# if player.stateTime >= FULL_WIDE_PAN_TIME:
# return player.goNow("playerFourSearchBehavior")
# elif player.stateTime >= FULL_WIDE_PAN_TIME * 2:
# return player.goNow("spinAtHome")
if role.isFirstChaser(player.role) and not playerFourSearchBehavior.pointIndex % len(playerFourPoints) == 0:
if player.stateTime >= tracking.INITIALIZE_HEADING_TIME + tracking.FULL_WIDE_PAN_TIME:
return player.goNow("playerFourSearchBehavior")
elif role.isStriker(player.role):
if player.stateTime >= tracking.INITIALIZE_HEADING_TIME + tracking.FULL_WIDE_PAN_TIME * 2:
return player.goNow('spinAtHome')
else:
if player.stateTime >= tracking.INITIALIZE_HEADING_TIME + tracking.FULL_WIDE_PAN_TIME:
return player.goNow('spinAtHome')
示例9: chaser
# 需要导入模块: import RoleConstants [as 别名]
# 或者: from RoleConstants import isStriker [as 别名]
def chaser(player):
"""
Chasers position off to one side of the ball about a meter away if a chaser
or cherry picker is calling them off. Chasers position further away up field if
a defender is calling them off.
"""
if role.isStriker(player.roleOfClaimer):
return striker(player)
if role.isDefender(player.roleOfClaimer):
if player.brain.ball.y >= player.brain.loc.y:
return RobotLocation(player.brain.ball.x + 250,
player.brain.ball.y - CHASER_DISTANCE,
player.brain.ball.bearing_deg + player.brain.loc.h)
return RobotLocation(player.brain.ball.x + 250,
player.brain.ball.y + CHASER_DISTANCE,
player.brain.ball.bearing_deg + player.brain.loc.h)
else:
southEast = RobotLocation(player.brain.ball.x - CHASER_DISTANCE,
player.brain.ball.y - CHASER_DISTANCE,
player.brain.ball.bearing_deg + player.brain.loc.h)
southWest = RobotLocation(player.brain.ball.x - CHASER_DISTANCE,
player.brain.ball.y + CHASER_DISTANCE,
player.brain.ball.bearing_deg + player.brain.loc.h)
northEast = RobotLocation(player.brain.ball.x + CHASER_DISTANCE,
player.brain.ball.y - CHASER_DISTANCE,
player.brain.ball.bearing_deg + player.brain.loc.h)
northWest = RobotLocation(player.brain.ball.x + CHASER_DISTANCE,
player.brain.ball.y + CHASER_DISTANCE,
player.brain.ball.bearing_deg + player.brain.loc.h)
supportPostitions = [southEast,southWest,northEast,northWest]
positionsFilteredByInBounds = [position for position in supportPostitions if (inBounds(position) and notBlockingGoal(position))]
if len(positionsFilteredByInBounds) > 0:
return min(positionsFilteredByInBounds, key=distanceToPosition(player))
# print "no in bounds position"
return southEast