Создаём игру 2048 на Arduino

Одним вечером захотелось запилить игрушку на arduino. Не долго думая, решил сделать 2048. Сделал! Теперь хочу показать процесс сборки.

Перед работой расскажу вам пару слов об игре. Ее создал Габриэле Чирулли — 19 летний итальянский разработчик. Игра была написана что-бы поупражняться в программировании. Хотя она и сделала большой успех, парень не продолжил заниматься разработкой игр.

В оригинале есть поле 4*4 на котором с шансом 91% появляется плитка “2” и с 9% цифра “4”. Цель игры — получить плитку 2048, передвигая все в одну из сторон.

Наша игра будет упрощённой версией. Будет появляться только двойка, при достижении 2048 игра будет заканчиваться и нельзя хранить рекорды. Это все — поле для ваших доработок.

Начнем с компонентов. Сердцем игрушки будет плата arduino nano — дешевая небольшая плата. Для управления понадобится 5 кнопок. 4 указывающие направления сторон и одна для перезагрузки. К каждой из них нужен резистор на десяток-другой кОм. Информацию будем выводить на дюймовый oled экранчик. Зеленая макетка для сборки.

Первая часть работы — подключение дисплея к ардуино.

Узнаем i2c адрес экрана. Для этого надо загрузить скетч I2C SCANNER на плату. Экран подключаем по таблице.

 

Плата Экран
GND GND
5V VCC
SCL A5
SDA A4

 

Скетч загружен, экран подключен. Открываем монитор последовательного порта. Здесь мы видим i2c адрес экранчика. Советую записать черным маркером на задней части экрана.

Теперь подготовим его к отображению данных.

Устанавливаем две библиотеки (adafruit ssd1306, adafruit gfx).

В папке с библиотекой есть восхитительный файл Adafruit_SSD1306.h. Откройте его.

Здесь надо откомментировать строку с размером вашего дисплейчика.

С дисплеем разобрались. Скачайте и откройте прошивку.

Пара слов об алгоритме.

Начинается игра и создается плитка “2”. Её можно кинуть в любую сторону. При каждом движении в сторону надо прибить все плитки к стене, сложить один раз одмнаковые вместе, сново прибить их к стене и наконец в случайном месте кинуть цифру 2.

Если нет свободных мест и нельзя сложить пару плиток, то появляется надпись GAMEOVER.

Если складывается плитка 2048 — появляется победное сообщение.

В void loop есть большой кусок закомментированного кода. Он нужен для отладки.

Он отвечает за получение цифры от 1 до 4 и отправки плиток в нужную сторону.

В ней надо указать пины, к которым подключены кнопки и адрес экрана. Прошейте

плату.

Теперь можно собрать устройство на breadboard’e и опробовать алгоритмы.

Если делать всё “по уму”, то нужно заказать изготовление печатной платы, на которой разместить наши компоненты. Но для первого прототипа достаточно собрать на макетке.

За основу берем зеленую макетку 5*7 cm. Крепим на нее ардуину.

Над ней делаем разъем для экрана. Расположите scl, sda над а4, а5 — будет удобнее паять.

Паяем кнопочки с резисторами.

Вставляем экран.

Рисуем стрелочки.

Запускаем и играем 🙂

Демонстрация https://www.instagram.com/p/BsUnzjuHaKc/

Если что-то осталось непонятным — смело пишите в комментариях!

Загрузка ...
The Robot
Adblock
detector