Skip to content

Latest commit

 

History

History
15 lines (12 loc) · 3.1 KB

Review.md

File metadata and controls

15 lines (12 loc) · 3.1 KB

PlayerMovement.jack

  1. В строках 147-193 можно выделить общую часть и в зависимости от направления, которое нужно проверить, решать, что присваивать переменным row и col.
  2. Там же в строках 35-119 есть много вложенных условий, что препятствует комфортному чтению кода (некоторые можно объеденить через амперсанд).

Block.jack

  1. Сразу заметны неинформативные названия методов, меняющих вид блоков и бонусов. Можно сделать или пояснения комментариями, или переименовать их соответствующе, а то не выходит оценить разнообразие блоков без перебора вариантов непосредственно в игре.

Player.jack

  1. Здесь отведено место методам, суть которых в проверке, можно ли двигаться в определенную сторону, и непосредственно в перемещении героя, хотя на себя эту задачу берет класс PlayerMovement.jack.
  2. Здесь же можно отметить, что все методы делают одно и то же, просто с разными параметрами присвоения. Это тоже можно сделать в одном методе с выбором направления в условиях.

Общее

  1. Везде, где есть проверки на нажатие определенных клавиш, можно выделить их в константы, тогда не придется подписывать комментарии, где какая кнопка находится, и общая читаемость кода повысится
  2. Стоит пересмотреть подход ко многим булевым переменным и методам, возвращающим булевое значение, поскольку в некоторых участках кода булевые переменные с присвоенными им значениями нигде не используются, а где-то можно было бы не делать код уровня "если (условие) то (переменная = false) иначе (переменная = true)", если заменить это на "переменная = (условное выражение или метод с булевым возвращаемым значением)"
  3. В целом это очень примечательный проект с фантастической логикой внутри, где еще и настройки геймплея прикручены и вообще проделана достаточно комплексная работа с движком. Наша команда в восторге!