2010-08-02 53 views
2

在alpha,beta修剪算法中, 我有一个类,其中定义了一个函数def getAction(self,gamestate)id。我在做高清的getAction 2个功能python中的alpha beta修剪

像:

class BAC: 
    def you(self,gamestate): 
    def me(gamestate,depth,alpha, beta): 
    ------ 
     return v 
    def both(gamestate,depth,alpha, beta): 
    ------------------- 
     return v 
    return me(gamestate,0,alpha, beta)- 

我需要把α,β函数我和两个。但是,我在哪里定义alpha和beta值。如果我定义了alpha和beta定义我和def两个然后错误发生,因为有全局名称alpha不存在。

如何制作alpha和beta局部变量或如何才能使其正确工作?

+0

除了有人会为你编码吗? – djondal 2010-08-03 02:01:27

回答

1

我想你会想把alpha和beta定义为你的类的属性。

您可能需要一个类构造函数来初始化您的变量。

class BAC: 
    def __init__(self): 
     self.alpha= 'Hello ' 
     self.beta= 'World!' 
    def me(self): 
     print self.alpha + self.beta 

或者,您可以初始化属性变量,如:

class BAC: 
    def me(self,alpha,beta): 
     self.alpha = alpha 
     self.beta= beta 
     print self.alpha + self.beta 

所有你需要的是,如果你想持久性来指代班属性。

如果选择所述第一溶液:

​​

的输出将是

Hello World! 
Hello World! 
1

通常α-β算法被实现为初始值分配给α和更高级别的功能然后将这些值传递给递归(或者非递归基于堆栈的)搜索函数。

上面给出的类解决方案也不错,尽管我可能会添加一个方法来重置alpha和beta,以便在每次搜索开始时不必实例化类实例。

相关问题