Игра «Тетрис» · Шаг 9 из 9
Отскок от стены
Палочка «I» стоит вертикально у самой стенки — и не поворачивается: лёжа она торчала бы за край. Раздражает. Хорошие тетрисы «отталкивают» повёрнутую фигуру от стены: пробуют сдвинуть её на столбец-другой и ставят туда, где она встаёт.
Что сделать
Оттолкните повёрнутую фигуру от стены, чтобы палочка у края тоже поворачивалась.
Что приходит
kletki— клетки уже повёрнутой фигурыmozhno— функция: клетки → можно ли так поставить
Что вернуть
Первый сдвиг по столбцам из 0, −1, +1, −2, +2, при котором сдвинутая фигура встаёт; ни один не подошёл — None.
Допишите функцию s_otskokom в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В игре
Игра зовёт s_otskokom после каждого поворота и ставит фигуру со сдвигом, который вы вернули. Решите шаг — и палочка у стены будет поворачиваться, отскакивая от неё.
Без этого шага: у стены фигура не поворачивается — отскока нет.
Лежащая палочка в столбцах 3–6 стакана шириной 10. В проверке mozhno — подмена: можно всё, что не выходит за стенки. Без сдвига фигура уже встаёт — функция возвращает 0.
Функция принимает клетки уже повёрнутой фигуры и функцию mozhno (клетки → можно ли так поставить). Пробует сдвиги на столбцы в порядке 0, −1, +1, −2, +2 и возвращает первый, при котором mozhno от сдвинутых клеток — True. Если не подошёл ни один — None.
Образцовый тест целиком
def mozhno(kletki):
return all(0 <= c < 10 for r, c in kletki)
s_otskokom([(0, 3), (0, 4), (0, 5), (0, 6)], mozhno)
0
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.