这是我正在努力做的一个井字游戏。这就是我现在所拥有的......
def checkio(game_result):
try:
for i in game_result:
if game_result[0][0] == "X" and game_result[0][1] == "X" and game_result[0][2] == "X":
return ("X")
elif game_result[1][0] == "X" and game_result[1][1] == "X" and game_result[1][2] == "X":
return ("X")
elif game_result[2][0] == "X" and game_result[2][1] == "X" and game_result[2][2] == "X":
return ("X")
elif game_result[0][0] == "X" and game_result[1][0] == "X" and game_result[2][0] == "X":
return ("X")
elif game_result[0][1] == "X" and game_result[1][1] == "X" and game_result[2][1] == "X":
return ("X")
elif game_result[0][2] == "X" and game_result[1][2] == "X" and game_result[2][2] == "X":
return ("X")
elif game_result[0][0] == "X" and game_result[1][1] == "X" and game_result[2][2] == "X":
return ("X")
elif game_result[0][2] == "X" and game_result[1][1] == "X" and game_result[2][0] == "X":
return ("X")
for i in game_result:
if game_result[0][0] == "O" and game_result[0][1] == "O" and game_result[0][2] == "O":
return ("O")
elif game_result[1][0] == "O" and game_result[1][1] == "O" and game_result[1][2] == "O":
return ("O")
elif game_result[2][0] == "O" and game_result[2][1] == "O" and game_result[2][2] == "O":
return ("O")
elif game_result[0][0] == "O" and game_result[1][0] == "O" and game_result[2][0] == "O":
return ("O")
elif game_result[0][1] == "O" and game_result[1][1] == "O" and game_result[2][1] == "O":
return ("O")
elif game_result[0][2] == "O" and game_result[1][2] == "O" and game_result[2][2] == "O":
return ("O")
elif game_result[0][0] == "O" and game_result[1][1] == "O" and game_result[2][2] == "O":
return ("O")
elif game_result[0][2] == "O" and game_result[1][1] == "O" and game_result[2][0] == "O":
return ("O")
except:
return ("D")
我的问题是“D”,如果有平局则需要返回,而是返回“null”。 我知道我的try-except语句是错误的,除了只处理错误(是吗?)。 当第一个区块没有任何匹配时,我似乎无法找到返回“D”的正确方法。
有什么想法吗?
此致
答案 0 :(得分:0)
Try-except仅适用于异常(错误)。你的问题是,因为没有抛出异常,所以从不执行except。你需要做的是在循环结束时返回“D”,函数结束。如果在函数结束前返回一个值,该函数将立即停止。只需移除try / except部件并将返回(“d”)粘在末端。
以下是一个例子:
if i == 6:
return true
return false
在这种情况下return false
仅在i!= 6时执行。
答案 1 :(得分:0)
听起来没有错误,但game_result
中的任何内容都不符合任何if
条件。尝试在所有else
块的末尾添加elif
语句,以便返回' D'