Игра «Тетрис» · Шаг 3 из 9
Встанет ли фигура
Каждый ход — сдвиг, поворот, падение — сначала примеряется: встанет ли фигура на новое место? Не встанет, если вылезет за стенку или дно стакана или наедет на лежащие клетки. А вот сверху стакан открыт: фигура только появилась и ещё торчит над краем — это можно.
Что сделать
Примерьте фигуру на новое место — встанет ли она в стакан.
Что приходит
kletki— клетки фигурыzanyato— занятые клетки стакана, словарь или множествоvysotaиshirina— размер стакана
Что вернуть
True, если каждая клетка — в столбцах от 0 до shirina − 1, выше дна и не занята; над стаканом — можно; иначе False.
Допишите функцию mozhno_postavit в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В игре
Игра примеряет этой функцией каждый ход: сдвиг, поворот, падение. Решите шаг — и фигуры будут ложиться на лежащие, а не проходить сквозь них.
Без этого шага: стенки стакана держат, а лежащие фигуры — нет: новая проходит сквозь них до дна.
mozhno_postavit([(0, 3), (0, 4), (0, 5), (1, 4)], {}, 20, 10)
True
Функция принимает клетки фигуры, занятые клетки стакана (словарь или множество клеток — важно только «есть ли клетка среди них») и размер стакана (рядов, столбцов). Возвращает True, если каждая клетка фигуры: столбец от 0 до «столбцов − 1», ряд меньше числа рядов (отрицательный ряд — над стаканом — можно) и не занята. Иначе False.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.