Вот ещё порядок выполнения скриптов с комментариями, что да как, может я здесь что-то не так подключил:
<script src="scripts/jquery-3.3.1.js"></script> //для полной загрузки страницы, что бы выполнялся скрипт: scripts/script.js;
<script src="scripts/engine.js"></script> //здесь выполняется игровой цикл, ничего, напрямую связанного с проблемой;
<script src="scripts/key.js"></script> //здесь функции движения игрока;
<script src="scripts/graph.js"></script> // глобальные переменные и функции по отрисовке всех "фигур", здесь так же находится функция randomColor;
<script src="scripts/area.js"></script> //просто разметка канваса на поля;
<script src="scripts/player.js"></script> //выше скинул весь (пока) скрипт;
<script src="scripts/target.js"></script> //по сути, так же, весь скрипт скинул выше (самый первый);
<script src="scripts/script.js"></script> //здесь производится инициализация всех функций из выше подключённых скриптов и объект map так же здесь.