Решение задачи Проверьте правильность ситуации с Яндекс Контест

Без пояснения   Просмотров: 2078


Напишите программу, которая по изображению поля для игры в «Крестики-нолики» определит, могла ли такая ситуация возникнуть в результате игры с соблюдением всех правил.

Напомним, что игра в «Крестики-нолики» ведется на поле 3*3. Два игрока ходят по очереди. Первый ставит крестик, а второй – нолик. Ставить крестик и нолик разрешается в любую еще не занятую клетку поля. Когда один из игроков поставит три своих знака в одной горизонтали, вертикали или диагонали, или когда все клетки поля окажутся заняты, игра заканчивается.


Код

a = []
a.append(list(map(int, input().split())))
a.append(list(map(int, input().split())))
a.append(list(map(int, input().split())))
k = 0
one = 0
two = 0
for i in a:
    for j in i:
        if j == 1:
            one += 1
        elif j == 2:
            two += 1
b1 = b2 = b3 = b4 = b5 = b6 = b7 = b8 = 0
for_two = 0
if a[0][0] == a[0][1] == a[0][2] != 0:  # 1 строка
    k += 1
    b1 = 1
    if a[0][2] == 2:
        for_two += 1
if a[1][0] == a[1][1] == a[1][2] != 0:  # 2 строка
    k += 1
    b7 = 1
    if a[1][2] == 2:
        for_two += 1
if a[2][0] == a[2][1] == a[2][2] != 0:  # 3 строка
    k += 1
    b8 = 1
    if a[2][2] == 2:
        for_two += 1
if a[0][0] == a[1][0] == a[2][0] != 0:  # 1 столбец
    k += 1
    b2 = 1
    if a[2][0] == 2:
        for_two += 1
if a[0][1] == a[1][1] == a[2][1] != 0:  # 2 столбец
    k += 1
    b4 = 1
    if a[2][1] == 2:
        for_two += 1
if a[0][2] == a[1][2] == a[2][2] != 0:  # 3 столбец
    k += 1
    b5 = 1
    if a[2][2] == 2:
        for_two += 1
if a[0][0] == a[1][1] == a[2][2] != 0:  # главная диагональ
    k += 1
    b3 = 1
    if a[2][2] == 2:
        for_two += 1
if a[2][0] == a[1][1] == a[0][2] != 0:  # побочная диагональ
    k += 1
    b6 = 1
    if a[0][2] == 2:
        for_two += 1
if k == 0:
    if 0 <= one - two < 2:
        print("YES")
    else:
        print("NO")
elif k - for_two > 0:
    if for_two > 0:
        print("NO")
    elif 0 < one - two < 2:
        print("YES")
    else:
        print("NO")
else:
    if two == one:
        print("YES")
    else:
        print("NO")

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться



Заявка на расчет