Войти Создать аккаунт

Игра «Арканоид» · Шаг 5 из 8

Удар по кирпичу

Кирпичи стоят плотно, и мяч, летящий наискосок, задевает их по-разному: сверху или снизу, сбоку, а иногда только углом. Удар сбивает с кирпича единицу прочности, кирпич без прочности исчезает. Мяч отскакивает от того, во что ударил.

Что сделать

Ударьте мяч о кирпичи вокруг: сбейте прочность, уберите разбитые и отразите мяч.

Что приходит

  • myach — где мяч: (строка, столбец)

  • napravlenie — куда летит: (вниз, вбок)

  • kirpichi — кирпичи: словарь {(строка, столбец): прочность}; менять его нельзя

Что вернуть

Тройку: новое направление, новый словарь кирпичей и список клеток, по которым пришёлся удар, — по правилам ниже.

Допишите функцию udar в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

В игре

Игра зовёт udar на каждом такте, пока мяч бьётся о кирпичи, и по списку ударов начисляет очки. Решите шаг — и кирпичи начнут разбиваться, а мяч — от них отскакивать, а не пролетать насквозь.

Без этого шага: мяч пролетает кирпичи насквозь.

Пример

Мяч в (5, 6) летит вверх-вправо, (-1, 1). Прямо над ним, в (4, 6), кирпич прочности 1: удар сверху, мяч летит вниз-вправо, кирпич разбит. Ответ — ((1, 1), {(2, 2): 3}, [(4, 6)]): дальний кирпич (2, 2) не тронут.

Тот же пример кодом
Вызов
udar((5, 6), (-1, 1), {(4, 6): 1, (2, 2): 3})
Вернуть
((1, 1), {(2, 2): 3}, [(4, 6)])

Готовая игра →

Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.