Ctrl K

Чем кончилась партия в крестики-нолики

Лёгкая
Двое играют в крестики-нолики на поле 3 × 3. Игрок A ходит первым и ставит крестики, игрок B ставит нолики; ходят по очереди и всегда в свободную клетку. Партия заканчивается, как только у кого-то три своих знака выстроились в одну строку, столбец или диагональ, либо когда заполнены все клетки. После окончания партии ходов больше нет. Дан список ходов moves, где moves[i] = [row, col] — клетка, в которую сделан i-й ход (нумерация строк и столбцов с нуля). Ходы корректны по правилам выше, начальное поле пустое. Верните "A" или "B", если кто-то выиграл, "Draw", если поле заполнено и победителя нет, и "Pending", если партия ещё не окончена.
Пример 1
moves=[[1, 1], [0, 0], [0, 2], [2, 2], [2, 0]] → 'A'

Крестики стоят в клетках (1,1), (0,2) и (2,0) — это побочная диагональ, побеждает A.

Пример 2
moves=[[0, 0], [1, 0], [0, 1], [1, 1], [2, 2], [1, 2]] → 'B'

Нолики заняли всю среднюю строку — побеждает B.

Пример 3
moves=[[2, 1], [0, 1]] → 'Pending'

Сделано всего два хода, линий нет и свободные клетки остались — игра продолжается.

Ограничения
  • 1 ≤ moves.length ≤ 9
  • moves[i].length == 2
  • 0 ≤ row, col ≤ 2
  • Клетки в moves не повторяются
  • После победы ходов в moves нет
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСтрока равна столбцу СредняяПереложить в другой лоток ЛёгкаяЗеркало и негатив ЛёгкаяСтроки становятся столбцами ЛёгкаяПод ударом ладьи Лёгкая
загружаем Python…
Вход
moves=[[1, 1], [0, 0], [0, 2], [2, 2], [2, 0]]
Ожидается
'A'

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 87 тестов на сервере, включая скрытые.