1 Создайте каталог под проект, со струкутрой файлов html, css, js - подключите ресурсные файлы к html. Помните разработка - это путь ошибок и их исправлений, написать сразу всё идеально не получится.
2 Разработку любого проекта начинают с прототипа/дизайна - вам достаточно найти картинку уже реализованного кем то варианта - это нужно чтобы визуализировать конечный результат. Сохраните эту картинку тоже в проект - чтобы всегда была перед глазами.
3 разделите комментариями весь ваш js на три больших блока: Глобальные переменные, События/обработчики событий Функции
4 по макету разрабатывается структура данных. Как разработать структуру данных? Очень просто открываете js и картинку - и простыми русскими словами переписываете все классы объектов, которые видите на картинке.
Класс объекта - это все объекты одного типа.... то есть вы не пишите вижу стену номер один, стену номер два и тд... Все стены - это объекты одного класса, в js записываете - объект стена(преграда), поле под счётчик, кнопка сброса и т.д.
5 определите основные принципы игры: Пространство: может ли она быть реализована на таблице, где предметы смещаются дискретно на одну клетку или вам нужен единый однородный холст под равномерное смещение. Тоже запишите в виде комментария в js. Время: Есть ли в вашем приложении понятие времени или шаг определяется событием? То есть будет ли игра реалтаймовой или пошаговой как шашки? Запишите в комментарий.
6 определите интерейс взаимодействия с игроком: клавиатура, мышь, кнопки и поля ввода на экране? запишите комментарий.
7 определите с какими объектами может взаимодействовать пользователь напрямую, пока без описания механики. Опишите какие события вам понадобится для этого обрабатывать. (Как обрабатывать пока не пишем.)
8 теперь перепишите блок переменные с комментариев на объявления переменных: подберите переменным правильные названия и создайте их сразу того типа, которым они будут на протяжении всей программы.
9 Перепишите блок функций. Снова смотрите на картинку и пытаетесь предугадать какие функции вам понадобятся, то есть что нужно будет делать: по событиям, по механике игры, по коллизиям и пограничным ситуациям, как их обрабатывать.
Придумываете название функции - и вписываете его в блок функции. Вместо тела функции пока пишите: console.log('вызвана функция "название функции" - и короткий комментарий, для чего эта функция нужна');