2017-04-17 33 views
2

我有這樣的代碼。但是我每次在主程序中調用nextMove()函數都不知道如何返回不同的動作。我是新手,請幫忙。我怎樣才能在每一回閤中獲得隨機的nextMove狀態?

class Player: 
    def __init__(self, str_name): 
     self.str = str_name 

    def __str__(self): 
     return self.str 

    def nextMove(self, state): 
     result = [(1,1),(2,2)] 
     return result 
+0

動作有什麼可能性? – TrakJohnson

+0

範圍從0到7(英文草稿表)。我已經嘗試過使用隨機庫,在該類中創建4個變量,但它返回了錯誤 –

回答

1

嘗試:

from random import randint 

class Player: 
    def __init__(self, str_name): 
     self.str = str_name 

    def __str__(self): 
     return self.str 

    def nextMove(self, state): 
     result = [(randint(0,8),randint(0,8)) for _ in range(2)] 
     return result 


if __name__ == "__main__": 
    player = Player('Simba') 
    for i in range(5): 
     print(player.nextMove('Safari')) 

# [(10, 2), (2, 4)] 
# [(4, 0), (10, 0)] 
# [(3, 0), (4, 4)] 
# [(8, 4), (2, 3)] 
# [(4, 4), (2, 1)] 

這不是很清楚的nextMove方法應該如何界定。方法定義中的任何地方都不使用state參數。因此,在我的例子中,我將它設置爲「Safari」。

我希望這證明有用。

+0

我可以在此類中創建變量並將其放入結果中。我試過了,但是失敗了 –

+0

@ congbang10h請提供一些代碼和錯誤追溯,不清楚你在問什麼。 – TrakJohnson

+0

我發表了另一個細節主題,您可以移動它並查看我的整個程序。 [鏈接](http://stackoverflow.com/questions/43464930/how-to-utilize-minimax-algorithm-in-english-checkers-game)。 感謝您的幫助@TrakJohnson –

相關問題