Крестики и нолики (упрощенное) на заданном поле

Аватара пользователя
stepanovyri
Сообщения: 17
Зарегистрирован: 15 ноя 2017, 15:27

Крестики и нолики (упрощенное) на заданном поле

16 ноя 2017, 22:21

Код: Выделить всё

def Победитель(x):
    for ei in ['X', 'O']:
        строка=x[O][O]==x[1][O]==x[2][O] or x[O][1]==x[1][1]==x[2][1] or x[O][2]==x[1][2]==x[2][2]
        столбец=x[O][O]==x[O][1]==x[O][2] or ei==x[1][O]==x[1][1]==x[1][2] or ei==x[2][O]==x[2][1]==x[2][2]
        Диагональ=x[O][O]==x[1][1]==x[2][2] or ei=x[O][2]==x[1][1]==x[2][O]
        for ei in ['X', 'O']:
            if ei == строка:
                return ei
        else:
            return '?'


print(Победитель([['O',' ','X'],
                  ['O','X',' '],
                  ['X',' ',' ']]))
                  
Задание заключается в том, что в конечном итоге должен выдавать победителя, из ходя поля , которое нарисовано в команде print. Если победителя нет, то должен выдавать '?'.

Выдает ошибку:

Код: Выделить всё

%Run kodu4.py
  File "C:\Users\Ximaks\Desktop\kodu4.py", line 5
    diagonaalis=x[O][O]==x[1][1]==x[2][2] or ei=x[O][2]==x[1][1]==x[2][O]
               ^
SyntaxError: can't assign to operator
Расскажите и если не сложно, подправьте код. Большое спасибо

Аватара пользователя
alexrozd8
Сообщения: 7
Зарегистрирован: 15 ноя 2017, 15:29

Re: Крестики и нолики (упрощенное) на заданном поле

16 ноя 2017, 22:24

А вы уверены, что индексами должна быть буква "O"?

Аватара пользователя
constan.costia
Сообщения: 16
Зарегистрирован: 15 ноя 2017, 16:49

Re: Крестики и нолики (упрощенное) на заданном поле

16 ноя 2017, 22:26

У вас присваивание вместо сравнения в этой строчке

Аватара пользователя
constan.costia
Сообщения: 16
Зарегистрирован: 15 ноя 2017, 16:49

Re: Крестики и нолики (упрощенное) на заданном поле

16 ноя 2017, 22:27

И да, вложенный цикл с той же переменной..

Аватара пользователя
stepanovyri
Сообщения: 17
Зарегистрирован: 15 ноя 2017, 15:27

Re: Крестики и нолики (упрощенное) на заданном поле

16 ноя 2017, 22:28

Да, должно быть буква "O". В задание отдельная пометка, что не "0" , буква O.

Аватара пользователя
constan.costia
Сообщения: 16
Зарегистрирован: 15 ноя 2017, 16:49

Re: Крестики и нолики (упрощенное) на заданном поле

16 ноя 2017, 22:31

Вероятно, эта пометка касалась содержимого поля, а не его индексов?

Аватара пользователя
volkwnseym
Сообщения: 6
Зарегистрирован: 15 ноя 2017, 17:26

Re: Крестики и нолики (упрощенное) на заданном поле

16 ноя 2017, 22:31

Советую воспользоваться какой-нибудь IDE, например PyCharm (на скриншоте). На многие ошибки IDE сможет указать.

И не стоит пренебрегать форматированием кода.

Если приглядеться к скриншоту и к месту, где IDE не понравилось можно увидеть опечатку:

Код: Выделить всё

or ei = x[O][2] == x[1][1] == x[2][O]
Правильно должно быть:

Код: Выделить всё

or ei == x[O][2] == x[1][1] == x[2][O]
Изображение

Проверкой и исправлением ошибок не делал, только добавил переменную которая неизвестно откуда взялась вместо 0, чтобы убрать предупреждения IDE в коде.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость