def directionToVector(direction, speed = 1.0):
dx, dy = Actions._directions[direction]
return (dx * speed, dy * speed)
def getCostOfActions(self, actions):
"""
Returns the cost of a particular sequence of actions. If those actions
include an illegal move, return 999999. This is implemented for you.
"""
if actions == None: return 999999
x,y= self.startingPosition
for action in actions:
dx, dy = Actions.directionToVector(action)
x, y = int(x + dx), int(y + dy)
if self.walls[x][y]: return 999999
return len(actions)
def getCostOfActions(self, actions):
"""
actions: A list of actions to take
This method returns the total cost of a particular sequence of actions.
The sequence must be composed of legal moves
"""
File "in getCostOfActions
dx, dy = Actions.directionToVector(action)
File in directionToVector
dx, dy = Actions._directions[direction]
KeyError: 'N'
我正在使用最后一个函数,但该函数不接受参数。这里的论点应该是什么?他们的类型应该是什么?
答案 0 :(得分:1)
第一个参数当然是self
,因为这是一个实例方法。这是隐式传递的。
根据docstring
,呼叫者应提供的参数是“操作:列表要采取的行动”。
E.g:
instance.getCostOfActions([North, East, South, West])
N.B:你有两行:
def getCostOfActions(self, actions):
def getCostOfActions(self, actions):
第一个被第二个替换。