December 21, 2024

Логика разработки "Зелёная змейка"

Моя задача не решить вместе с вами задачи, а донести, как нужно размышлять и какая цепочка мыслей может вас привести к решению задачи.

Разработка каждого проекта обычно делится на несколько этапов, я обычно придерживаюсь следующих:

  1. Придумывание общей концепции
  2. Придумывание путей реализации
  3. Первая реализация
  4. Улучшение проекта до достойного состояния

Поэтому мы сначала обсудим концепцию игры, которую хотим создать. И так, игра основывается на игре змейка. Соответственно, вспомним, что у нас есть в игре змейка.

  1. Появляется змея и мы должны ей управлять
  2. Должны появляется яблоки (или ягоды), которые должны исчезать когда змейка их ест.
  3. При съедении яблока, змейка должна увеличиваться в размере.
  4. При увеличении размера, змейка должна ускоряться.
  5. Управление должно получаться, при помощи жестов.

И так, теперь когда мы можем себе представить нашу игру, то можем разделить её реализацию на несколько частей

  1. Реализация счёта, появления яблок и их съедания.
  2. Реализация змейки, её увеличения и передвижения.
  3. Реализация управления, создание модели классификации жестов.

Теперь мы можем начать обсуждать реализацию каждой части по отдельности, а начнём мы с реализации счёта и яблок, так как это самое простое.

Мы создадим объект яблока, ему зададим, что он появляется в совершенно случайном месте. При прикосновении змейки яблока, яблоко меняет своё местоположение и обновляется счёт в большую сторону.

Дальше будет сложнее, нам нужно реализовать змейку. Самым простым и элегантным способом её реализации будет сделать начало змейки из 2-ух частей. То есть у нас будет голова и хвост, это будут отдельные блоки. Мы будем управлять именно головой, а её хвост, должен будет следовать за головой, то есть перемещаться туда, где раньше находилась голова. Для увеличения длины змейки, мы будем создавать клона хвоста, который будет следовать за предыдущим хвостом и так далее.

Последняя часть это будет соответственно управление змейкой жестами, тут сначала обучим модель, которая будет распознавать направление куда будет двигаться змейка: вверх, вниз, влево или вправо. В реализации управления, важно помнить, что Teachable Machine в Stretch не возвращает значение класса, по нашему запросу, а постоянно возвращает раз в некоторое время. Поэтому нам нужно будет завязать управление на ивентовой системе.

Ну а теперь мы можем перейти в Stretch и начать реализовывать частично змейку.