несколько функций Python в одном скрипте - PullRequest
0 голосов
/ 11 июня 2018

Возникли проблемы с этим скриптом крестики-нолики.По какой-то причине моя функция «Winner» вызывает ошибку.Однако, когда я настраиваю функцию-победитель, я получаю синтаксическую ошибку в строке после оператора print.Когда я комментирую функцию победителя, скрипт запускается, как и ожидалось.Я не вижу, где синтаксическая ошибка.Спасибо.

def winner(board):
    if board[0][0]==board[0][1]==board[0][2] or board[1][0]==board[1][1]==board[1][2] or board[2][0]==board[2][1]==board[2][2] or board[0][0]==board[1][0]==board[2][0] or board[0][1]==board[1][1]==board[2][1] or board[0][2]==board[1][2]==board[2][2] or board[0][0]==board[1][1]==board[2][[2] or board[0][2]==board[1][1]==board[2][0]:
        print('Player {} wins!!!'.format(player))
        return False
    else:
        return True

def move(coord, player):
    marker = ' X '
    if player == 2:
        marker = ' O '
    if coord == '0,0':
        board[0][0] = marker
    elif coord == '0,1':
        board[0][1] = marker
    elif coord == '0,2':
        board[0][2] = marker
    elif coord == '1,0':
        board[1][0] = marker
    elif coord == '1,1':
        board[1][1] = marker
    elif coord == '1,2':
        board[1][2] = marker
    elif coord == '2,0':
        board[2][0] = marker
    elif coord == '2,1':
        board[2][1] = marker
    elif coord == '2,2':
        board[2][2] = marker

board = [[(0,0), (0,1), (0,2)],
        [(1,0), (1,1), (1,2)],
        [(2,0), (2,1), (2,2)]]

turn = 2
while True:
    print('\n'.join(map(str, board)))
    player = turn % 2 + 1
    x = input('Player {}, where will you play? (i.e. 0,0 for upper left) '.format(player))
    move(x,player)
    winner(board)
    turn += 1

1 Ответ

0 голосов
/ 11 июня 2018

Это просто простая ошибка, ваш код работает: у вас было лишнее [ в этой части условия:

board[0][0]==board[1][1]==board[2][[2]

Снимите лишнюю скобку, и она будет работать как положено!

  • Я заметил это, потому что скопировал код в notepad ++, и он выделяет совпадающую скобку, стоя на одной из скобок.
    Я прошел через условие с помощью клавиши со стрелкой и заметил, что это сталокрасный:

    enter image description here

...