Игра «Крестики-нолики» · Шаг 2 из 5
Все линии поля
Выигрывает тот, кто собрал линию: ряд, столбец или диагональ. Чтобы не выписывать восемь линий руками — и чтобы игра потом выросла до поля 4×4 без переписывания, — пусть их строит функция по размеру поля.
Что сделать
Постройте все выигрышные линии поля любого размера — чтобы не выписывать их руками.
Что приходит
n— размер поляnнаn
Что вернуть
Список линий, каждая — список клеток (ряд, столбец): ряды, столбцы и две диагонали — порядок в «Подробных правилах»; у поля 3×3 линий 8.
Допишите функцию linii в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В игре
Игра зовёт linii один раз, в начале партии, и потом отдаёт этот список третьему, четвёртому и пятому шагам. Решите шаг — и победа будет засчитываться по столбцу и по диагонали, а не только по ряду.
Без этого шага: линии — только ряды; столбцы и диагонали победы не приносят.
linii(3)
[[(0, 0), (0, 1), (0, 2)], [(1, 0), (1, 1), (1, 2)], [(2, 0), (2, 1), (2, 2)], [(0, 0), (1, 0), (2, 0)], [(0, 1), (1, 1), (2, 1)], [(0, 2), (1, 2), (2, 2)], [(0, 0), (1, 1), (2, 2)], [(0, 2), (1, 1), (2, 0)]]
Функция принимает размер поля n. Возвращает список всех линий, каждая — список клеток (ряд, столбец) по порядку:
- ряды сверху вниз, клетки слева направо;
- столбцы слева направо, клетки сверху вниз;
- главная диагональ — от
(0, 0)вниз вправо; - побочная диагональ — от
(0, n − 1)вниз влево.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.