Tic Tac Toe裁判

时间:2014-11-10 22:25:58

标签: python function loops tic-tac-toe

我正在尝试解决一项新任务 - Tic Tac Toe裁判。我必须对游戏结果做出判断,但不要对游戏进行判断。该程序应该只返回一个赢家(O或X)或绘制(顺便说一下,就像一个字符串)。

def checkio(game_result):
    for y in game_result:
        if y == "XXX":
            return "X"
        elif y == "OOO":
            return "O"
    for y in range(3):
        if game_result[y][0] == game_result[y][1] == game_result[y][2] != None:
            return game_result[y][0]
        if game_result[0][y] == game_result[1][y] == game_result[2][y] != None:
            return game_result[0][y]
    if game_result[0][0] == game_result[1][1] == game_result[2][2] != None:
        return game_result[1][1]
    if game_result[2][0] == game_result[1][1] == game_result[0][2] != None:
        return game_result[1][1]
    return "D"

我真的不明白我在哪里犯了错误,系统在以下情况下回答:

  • .OX
  • .XX
  • .OO

(“。”表示空单元格)

我的结果是“。”但正确的结果是“D”。

如何解决?谢谢你的关注。

1 个答案:

答案 0 :(得分:0)

该行:

if game_result[y][0] == game_result[y][1] == game_result[y][2] != None:
        return game_result[y][0]

导致你麻烦 - 第0列中的所有单元格都是相同的,当你应该返回'draw'时,你要返回列[0] [0]的值,即'。',