2017-08-31 66 views
-2

嘿,我正在嘗試創建一個評估函數,用於我正在做的這個井字遊戲。基本上它是檢查一個遊戲板(testBoard是我創建的示例遊戲板)是否包含任何獲勝條件。正在執行Python函數

但是,當我執行這個代碼時,終端上沒有任何東西顯示出來。任何意見,將不勝感激。

ai = 0 
player = 1 
testBoard = [[0, 0, 1], [1, 0, 1], [1, 0, 1]] 

def evaluateBoard(Board): 
    # Evaluate rows 
    for row in range(3): 
     if Board[row][0] == Board[row][1] == Board[row][2]: 
      if Board[row][0] == ai: 
       return 10 
      elif Board[row][0] == player: 
       return -10 

    # Evaluate columns 
    for col in range(3): 
     if Board[0][col] == Board[1][col] == Board[2][col]: 
      if Board[0][col] == ai: 
       return 10 
      elif Board[0][col] == player: 
       return -10 

    # Evaluate diagonals 
    if Board[0][0] == Board[1][1] == Board[2][2]: 
     if Board[0][0] == ai: 
      return 10 
     elif Board[0][0] == player: 
      return -10 

    if Board[0][2] == Board[1][1] == Board[2][0]: 
     if Board[0][2] == ai: 
      return 10 
     elif Board[0][2] == player: 
      return -10 

    # In case of draw, return 0 
    return 0 

evaluateBoard(testBoard) 
+3

你不'print'什麼,所以什麼都不會顯示。你期望看到什麼?這並不意味着沒有任何運行。 – roganjosh

+0

您沒有在終端上打印任何內容,因此您什麼都看不到 – Cuber

+0

除非您將其顯示出來,否則屏幕上不會顯示任何內容。 –

回答

0

代碼中沒有打印。嘗試:

print evaluateBoard(testBoard) 

或者,如果您使用的是Python3

print(evaluateBoard(testBoard)) 

請記住,如果您正在執行的整個文件你不會看到相同的行爲作爲執行解釋的命令行內的Python代碼。要查看輸出,您必須在標準輸出上發送一些內容。

1

return語句將該值返回給解釋器(或者如果將函數的輸出分配給變量,則返回該變量);除非您指定它,否則它不會執行任何操作。

你可以修改你的功能,它說returnprint(10)或任何你想要的值。

你也可以做到以下幾點:

result = evaluateBoard(testBoard) 
print(result)