🎮Делаем Тетрис! [Arduino GameDev]
Вставка
- Опубліковано 22 лис 2018
- Сегодня будем разбирать игру Tetris и её реализацию на Arduino.
Качай Vikings: War of Clans и получи 200 💰голды и 🏥 бесплатный щит:
➤ Android: bit.ly/2qLTtwU ➤ IOS: bit.ly/2K0MEA3
Конкурс MacbookPro - club168701342
➤ Статья о матрице alexgyver.ru/matrix_guide/
➤ Проект BT матрица alexgyver.ru/gyvermatrixbt/
➤ Библиотека таймера ttps://community.alexgyver.ru/resources/biblioteka-gyvertimer.11/
➤ Библиотека кнопки community.alexgyver.ru/resour...
➤ О паяльнике TS100 alexgyver.ru/ts-100-update/
★★ МОИ ПОДБОРКИ ПОЛЕЗНЫХ ТОВАРОВ С ALI ★★
► 3D принтеры и советы alexgyver.ru/3d-printers/
► Всё для электронщиков (паяльники, приспособления) alexgyver.ru/all-for-soldering/
► Инструменты (шуруповёрты, дремели, ручное) alexgyver.ru/my_instruments/
► Все существующие модули и сенсоры Arduino alexgyver.ru/arduino_shop/
► Аккумуляторы, платы защиты alexgyver.ru/18650/
► Уникальные автотовары alexgyver.ru/auto/
Теги: #самоделки #arduino #электроника
═════════════════════════════════════
✔ Официальный сайт: AlexGyver.ru/
✔ Группа Вконтакте: diyworkplace
✔ Поддержать канал денежкой AlexGyver.ru/support_alex/
✔ Instagram: / alexgyvershow
═════════════════════════════════════ ✔ Группа ВКонтакте: diyworkplace - Наука та технологія
Ошибочка вышла! Всё таки в памяти один светодиод занимает 3 байта, просто хранится это число другим способом, не в одной большой переменной :)
Alex, сделай Drum pad
Alex, можно ли сделать передачу стереозвука на модуле nRF24?
Привет.
Почему не понизить цвет до 1го бита на цвет (3 бита всего)? Тебе ведь нужно только 8 цветов (7 фигур и черный)
Я по этому поводу уже оставил комментарий, но я думаю продублировать можно и сюда.
Собственно у меня получилось добиться следующих результатов, если понизить разрядность цвета:
Sketch uses 632 bytes (2%) of program storage space. Maximum is 30720 bytes.
Global variables use 105 bytes (5%) of dynamic memory, leaving 1943 bytes for local variables. Maximum is 2048 bytes.
Использовал unsigned int и получается что он хранит 16 бит, соответственно матрица 16*16 - это массив unsigned int colors[3][16].
-------------------------------------------------------------------------------------------
static unsigned int colors[3][16];
const byte coorMask = 0b00001111;
void getPixelRGBColor(byte xy, byte brightness, byte& rPtr, byte& gPtr, byte& bPtr) {
rPtr = (colors[0][xy&coorMask>>4] >> (xy&coorMask)) * brightness;
gPtr = (colors[1][xy&coorMask>>4] >> (xy&coorMask)) * brightness;
bPtr = (colors[2][xy&coorMask>>4] >> (xy&coorMask)) * brightness;
}
bool isUsed(byte xy) {
return (colors[0][xy&coorMask>>4] >> (xy&coorMask)) || (colors[1][xy&coorMask>>4] >> (xy&coorMask)) || (colors[2][xy&coorMask>>4] >> (xy&coorMask));
}
Ну да. Если открыть структуру CRGB то видно что там три составляющий типа uint_8
Слушай, @AlexGyver. Куда проще его можно было-бы сделать с помощью клеточного автомата (Почитай на викепедии). Я программист. Когда я делал тетрис я его делал с помощью клеточного автомата. Код получается проще, меньше, красивее и будет занимать меньше динамической памяти arduino. Да и в целом с помощью клеточных автоматов можно воссоздать много старых игр. С помощью него это делается проще. Если ты заметил сообщение, пожалуйста, ответь :)
Го в топ что-бы он заметил :) Ставьте лайк
Не согласен что технология клеточного автомата была бы более выгодна в данном случае. Клеточные автоматы обязаны каждый тик обрабатывать все клетки. Пустые и не пустые, и при этом придется городить метапиксели(читай фигуры). Насчет меньшего кол-ва памяти - да. Хранится только 0 или 1(Если разговор про клеточный автомат). И в переменные весом в 1 байт можно запихнуть 8 таких состояний. А значит памяти мы бы ели 32 байта(поле 16*16). Но вот проблемма. Нам нужны цвета. Я бы на самом деле на месте гайвера соорудил пару функций по типу
#define GET_STATE(pixel) (pixel&0x000001!=0)
Это позволяло бы в массиве цветов менять один бит и проверять его. Сообственно он почти так и сделал, только без битовых операций.
На тему "С помощью него этой делается проще." - проще - не значит лучше.
То что это возможно - да. Ради эксперемента это сделать интересно.
Как например реаллизация процессора тетриса в игре жизнь.
(Ссыль) habr.com/post/338584/
Пихать такое в контроллер ради тетриса никто не будет. Там одно поле размером 2 940 928 x 10 295 296.
Но как эксперемент - интересно.
Ровно так же как и создание OTCA-метапикселя.
Короче резюмируя это все - проще не лучше. Гайвер вполне правильно поступает, когда пишет код сам.
Да у него тоде не все идельно и половину можно оптимизировать и все вот такое вот. Но тогда этот код никто и не поймет.
А так он получил вполне неплохой код. У которого в фоне можно еще обмениваться данными. А если бы вкорячить туда автомат - на факт что осталось бы процессорное время. Но это надо считать.
Говоришь вполне обоснованно. Но я делал тетрис (Он был клеточным автоматом, но при том был многоцветным (Не буду рассказывать как я это делал)), после этого я сделал его другим методом. Клеточный автомат занимал меньше памяти (Работал с практически с такой-же производительностью (Совсем чуть-чуть меньше)). Да и опять же, весь код был проще и меньше. Так-что, не знаю. Все делают как им удобнее. И тот и тот метод одинаково правилен.
(Тебе лайк поставил)
Сoder channel а на чем ты его запускал? Если на компе - то на нем в наше время много чего не заметно. Можешь сделать пару программ по вычислению - допустим таблицы квадратов. Одну программу с float переменными. Вторую с int -
Разницы не заметишь. Но если запустить такое на контроллере - разница будет разительна.
Да. Есть такое. Но тут особой разницы в мощности вычеслений нет. На aurduino nano пойдёт. (У меня робот с 1000 строковым кодом с весьма сложными вычеслениями (И циклами) работает весьма быстро. Этот робот едет по линии (Line follower) и при скорости 2 метра в секунду хватает (Aurduino nano). Вычесления по сложности даже чуть больше чем этот клеточный автомат. (Притом в код подключено несколько библеотек))
Сoder channel ну тут я особо спорить не могу, но я не вижу зачем для такой задачи сложные вычесления. (2 метра в секунду он проезжает - против 16 миллиона тактов процессора у ардуины. Наверное если бы я собирал такую штуку - я бы взял шесть датчиков и просто бы корректировал угол поворота робота на основе угла отклонения линии. Ну и при экстремально больших углах - замедлял бы робота. Но это только теоритические мысли, на практике я с такими вещами не сталкивался.
Ты совсем забросил "Заметки ардуинщика"!!! А ведь интересно! И даже очень!
🙋
В принципе, видео такого формата можно было бы выпускать на втором канале.
@@minicars_rc3770 Это говно отнимает много времени и сил, на полезные видосы не хватает. А говнище бесполезное, вроде тетриса этого и кубика светодиодного, которое делать будут единицы, приносит просмотры разных придурков, бездельников.
@@Bobi-Boba-potantsyem. Вот не надо ляля. Из этого видео можно много чему научится ибо тут вагон не стандартных решений. Да и какой смысл снимать видео о том чего в Яндексе и ютубе вагон.
И к слову говоря, кубика рубика повторило около 600 чел. В разных извращенных вариантах.
@@MrZorro441 Я автору лично писал о бесполезных видосах, он мне ответил, что на полезных видосах просмотров меньше. Причем тут ляля.
Талантище!
Лоооол, не ожидал) Привет
@@user-xf2oe6en4x аналогично :D
-Твой код Машина сбила?
-???неет
-А почему он на костылях???
Ba Dum Tss
Шикарный проект! Алекс молодец, всё очень понравилось, сразу видно, что над проектом проведена тиктоническая работа!! Спасибо за потрясающий видос!!
точно не титаническая?
Саш давай уже большую матрицу и игру марио со звуком. Я бы с удовольствием сделал такую по твоей технологии)
а давай ты!?
а что марио, давай doom!
Давай марио
Не, на нано не получится, а Гайвер только наноардуинщик)))
го ГТА 5 тогда уж
Супер! вдохновляют твои работы, скоро буду делать один проет, всё благодаря твоим обучалкам и видосам, спасибо!
Круто! Хочу еще-еще и еще!:) Молодец! Приятно смотреть на работу:)
ошибочка,Алексей Пажитнов,а не Пажитонов
Причём с ударением на «а»
@KinoRomos , ну а тебе только хэйтить AlexGyver. И нет, я не безумный фанатик. Как-бы видео достаточно хорошее. Видео оправдало ожидания.
@KinoRomos Чувак, я тоже не в восторге от рекламы в ЛЮБОМ видео, но я не выебываюсь и не пишу об этом в комментариях. Тебе перемотать сложно? И да зачем думаешь вообще реклама? Он тут даже сам сказал, что купил на часть этих денег компоненты для следующего проекта. Хотел еще что то объяснить, но лан) Хорошего настроения)
Блять ну и Чо? Подумаешь ошибся, будто вы блять никогда не ошибаетесь
@KinoRomos 70% перегнул)
Когда я писал тетрис в 97 году, я каждую фигуру хранил одним байтом! Восемь бит делил на две строки - получалась сетка 4x2.. Все фигуры ложились в эту сетку.
Нашел исходники того тетриса. Кусок с описанием фигур:
/* Данные о фигурах: цвет, битовая карта, коррекция по X, коррекция по Y */
byte FiguresData = {2, 0x066, 0, 0, /* куб */
4, 0x00F, 0, 1, /* палка */
6, 0x06C, 1, 0, /* Z - образная зеркальная */
7, 0x0C6, 1, 0, /* Z - образная */
5, 0x04E, 1, 1, /* усеченный крест */
1, 0x08E, 1, 1, /* Г - образная */
3, 0x02E, 1, 1}; /* L - образная */
Если надо - могу исходники выложить. Они на Sphinx C--. Исполняемый файл занимал три килобайта (включая английский шрифт).
Привет, не мог бы ты выложить исходники? Очень интересно. Например, на гитхаб.
Спасибо, Алекс! Лайк прожал. Программистом считать себя разрешаю!))
Как всегда всё на высоте. Спасибо Алекс!
Ну просто золотые руки и мозги
Так же тетрис используют для отладки мониторов в автомобилях газель
В смысле для отладки мониторов? Я думал это чтобы в пробке не скучно было)
@@user-ik5nl6wc7q :)
+
Экран 16х16 пикселов. Если представить каждый пиксел одним битом, то буфер для экрана займёт массив 2*16 байт. Написать две функции для записи и чтения бита в массиве по координатам (X, Y) и можно избежать костылей с проверкой цветов. А сдвиг "стакана" на линию вниз реализуется перемещением 30 байт в массиве вперёд на 2 байта. Проверка на заполнение линии тоже просто, два байта линии д.б. равны 0xFF каждый.
Хотя... С инкрементом цвета на 1 довольно ловко. Я бы не назвал это костылём.
Интересные проекты делаешь, спасибо, продолжай в том же духе!
Твой видос спас меня от тоски!!!Спасибо, Алекс!!!
Спасибо за разбор кода!
Давай лучше пока гирлянду (бегущие огни, бегущая тень, дождь и тп.) замутим, новый год же скоро
Смотри внимательнее на сайте, там есть гирлянда на кучу режимов
можно ссылку? не получается найти.
В проектах по ардуино, там где серебряная кнопка Ютуб. Или гайд по адресным лентам
alexgyver.ru/ws2812b-fx/
Видел этот ролик, спс.
Но проекта гирлянды с эффектом падающего снега нету, а было бы в тему, ведь скоро НГ.
Я сам инженер по информационным технологиям и многое знаю и видел за 10 лет работы. Каждый раз поражаюсь твоему уму и терпению. Удачи тебе. Спасибо за видео.
Алекс , спасибо за видео и проделанные работы. Я чайник в этом всем, но твои уроки дают плоды. Есть просьба, запиши до нового года подробное видео как ты делал эффекты снегопад , огонь, перемешивающие я краски радуги на светодиодной матрице на окне. Очень хочется к новому году удивить соседей)
Нифига не понял, но интересно!
Согласен
Интересно расказывает!
Как ты прочитал мои мысли?
Очень элегантно) наслаждаюсь красотой этих решений
Молодец, мужик. Не технарь, но смотрю с удовольствием всегда. Респект ✊
Да, забыл. Надо “мультик в конце»😀
Спасибо, что рассказал в начале, что такое Тетрис! Уникальная информация!
я открою тайну.. есть люди которые не знают что это такое!
@@user-hw6vr2hh6b но смотрят этот канал. Ога.
Исправь пожалуйста библиотеку GyverLCDbars,в ней нет заголовочных файлов и можешь объяснить что не так со скетчем Keypad_v1.1.ino ArduinoIDE отказывается компилировать и загружать его,но где ошибка не показывает я уже весь код перечитал но неодной ошибки не нашел.
Блин ты крут) Спасибо за терпение) спасибо за видосик. Очень жду видео про матрицу во всё окно и как ты с улицы играешь в тетрис через интернет или wifi). Очень жду)
Супер!! И идея и реализация на отлично! Дома на пол стены такой очень хорошо впишется
А что если сделать *сапера* ? Должно быть интересно.
Чтобы взрывался по настоящему.
@@SIM31r *Сапёр "Почувствуй запах своего горелого тела"*
Если добавить монетоприёмник то получится классический игровой автомат.
Про паяльник - сильно! В своем стиле. Молодца
я твоих видосов жду больше чем нового года !!!
Гайвер сними видео один день из твоей жизни)))
*Давай тамагочи замутим , есть те кто помнят такую прошлого века технологию )) ?*
Создаю андроида , буду рад новым людям .
Нет конечно, никто не помнит, один ты.
Ебать идея годная. Каким хуем ты раньше меня придумал?
*Спс , я х.з просто так вышло ))))*
Это не технология, это игра
Молодец. Все толково. Когда мой друг написал на ПК тетрис в институте и показал преподу, то по дисциплине ему автоматом поставили отлично. Так что браво!
Очень и очень круто. Продолжай в том же духе. Очивку программиста ты получил уже больше полугода назад и я одобряю поднятия уровня именно программирования)
Когда лампа на радио индикаторах?
Когда индикаторы на лампах радио?
VladRodz ебать смешно
@Vlad Daran надыбай ещё панельки под них, микросхемы к155ид1 , дроссель, опторазвязку TLP627-2.
Го тетрис на радиолампах
Мне кажется такими темпами, ты сделаешь GTA 6 на ардуино, быстрее чем Rockstar
Неа, нового кота на ардуино.
GTA 6 банально! Half Life 3 у VR на Дуино=)
Отличный формат, продолжай!
Лайк!
Круто! 👏
Теперь это относительно легко можно трансформировать в гонки/танчики (с того же тетриса), space invaders или break breaker 👍
Впечатляет, а сможешь ли ты сделать синтезатор на arduino?
В инете полно таких
Смотря чего. Я бы не отказался от синтезатора еды, но вроде еще нет =) А так если по теме к Ардуино легко подключается что-то типа AY-8910 и после можно хоть чиптюны играть, хоть синтезатор замутить.
Колокольчик сработал!
все таки на голову упал?
@@hibahprice6887 говарил же на сопли клееть, а ни на кровь из пальца
Большое спасибо за видео! Огромное спасибо, что тратишь силы на действительно умственно сложные проекты!
Огромное спасибо, хотел делать тетрис, но на питоне. Круто объяснил тонкости. И да перекрашивать незаметно клетки в более яркие это прям премия "Лучший костыль для ардуино 20!8"
После рабских будней, твой видос бальзам на душу.
Подписался на вас, колокольчик нажал , го взаимную подписку, колокольчик втыкаем!!))
KAWASAN вы хоть мой контент посмотрел, у меня не тот контент что бы просто подписатся.
@@kept5957 интересно, я чекнул обязательно проникнусь вашим контентом
Kept хорошая замануха - но нет 😆
Очень забавно. Школьник говорит про рабство. Задали домашку=отправили на каторгу. Мамка заставляет вынести мусор=ужасные условия
Алекс сделай пожалуйста гаус пушку!!!!
Алекс сделай пожалуйста гайвер пушку!
Да кстати это должна уже быть не гаус а гайвер пушка!
Очень понравилось! Продолжай!
Годнота! Я хоть игры не пишу, но как ардуинщик со стажем, понимаю весь достаточно разжеваный материал тобою изложенный)) Оч затягивает разбор таких простых (на первый взгляд) игр! Продолжай еще!)
*Уже тетрис... Хм, а что дальше*
Super Mario bros и принц персии
Пашочек дальше будет реклама викингов
"Всем привет, с Вами AlexGiver, и сегодня мы с вами соберём синхрофазотрон из материалов, найденных у меня на балконе"
😂😂😂
Doom, Grand Theft Auto, Counter Strike 1.6, Counter Strike Global Offensive, a там уже и до Escape from Tarkov не далеко))0)
Ах, да, это всё он сделает из хлама, который найдёт у себя на балконе
@@Bohdan_Oleksandrovych Пусть сделает обзор своего балкона, уж очень интересно, может там не только синхрофазотрон собрать можно
Ты забыл про тетрис в приборке новой газели!!!
Да у тебя все форматы видео заходят на ура!
Ваще ништяк Алекс! Ну прям аплодирую стоя!!! Осталось добавить музыку из тетриса, которая через 10 минут начинает фризить мозг и написать на эту панель флаппи бёрд :-) Руби ещё видюх с лентой!
*АЛЕКС САМЫЙ ЛУЧШИЙ ИЗ ЮТУБЕРОВ В МИРЕ* *ЭЛЕКТРОСАМОДЕЛОК*
в топ
Можно луцк🖤
Отличный ролик, надеюсь увидеть продолжение этой рубрики на канале
Красавчик!Перешел на следующий уровень по контенту
алекс изменил жене с паяльником
@Sila v pravde ну или девушка
Ты - это все время программировал ??????
Подписался на тебя
@@johnfreman ??
@@businessmahinator4608 во, щас да
@@johnfreman зачем ??
Подписался
Высшая степень счастья - когда у Алекса регулярно выходят видосики
Как всегда Великолепно!
Треть ролика про рекламу, скатился, позор
Начало ролика 3:31
UltrAleks Если деньги с рекламы идут в проекты а не тупо на пивас, или шлав то всё норм.
Тебе кто-то мешает пропустить рекламу?? Ещё можно закрыть и не смотреть вобще
Забыл добавить главное чтобы не азино или три топора.))
Мудрёно и интересно! Спасибо Гайвер!
Ееее! Больше видео такого формата!!
Молодец, круто получилось! Дальше, ждем Марио на всю стену ;-)
Классс молодец!!! Достойно уважения твой труд!!!
Бесспорно нужен такой формат! Спасибо
Чувак, ты реально крут!
красава , очень достойно)
я тут часы не могу написать а он тетрис сделал , аплодисменты стоя!
Алекс, ты лучше кодишь, чем некоторые мои товарищи по проекту с профильным образованием и опытом работы по специальности!
блин, Алекс, ты охеренен, спасибо тебе за божественный контент
Ура продолжение я его ждал и дождался
Алекс, очень люблю смотреть ваши видео. По на научился немного программировать ардуинку, даже сделал GSM сигнализацию с гибкими настройками sms. Да и вообще мото интересного узнал и научился. Спасибо за ваши труды. Лайки разумеется не глядя.
Но есть вопрос: планируются ли проекты на STM32? Я думаю не мне одному было бы интересно посмотреть на ето в вашем исполнении.
Великолепный ролик и очень интересная рубрика!
Алекс - это реально круто!
Огромная работа, очень интересно, спасибо
офигенно, вот ты профессор! столько времени на код потратить!!!
Как всегда отлично, спасибо.
Красавчик, я доконца не понел как ты это сделал, но это круто
Решения на самом деле оригинальные!
А самое прекрасное в том, что это всё на нано ардуино работает.
Аплодирую стоя!
Саня, как всегда на высоте!
Спасибо за крутое "разжевывание", действительно познавательно, и после просмотра кажется таким простым :). Было бы интересно посмотреть такое же видео про игру в лабиринт.
В тетрисе помню была игра гонка, обьезжаешь приграды + собираешь какие то допы и у тебя появляется возможность стрелять по приградам и скорость еще на каждом уровне менялась
Круто продолжение жду. Очень интересно. Это жесть какое желание именно на ардуине. 100500 лайковввв.
Годно! хотим ещё)
Оооо новый видос , Дождался
Больше, БОЛЬШЕ ИГР!))) Заказал матрицу, идет с али, жду не дождусь когда соберу все это дело)))
Все круто. Спасибо!
Заморочился по делу. Радуешь глаза и уши. Творческих узбеков
Круто! Явно не зря старался!
Красавчик, чё ещё сказать, жду нового видео!
очень интересно , давай еще разборов!
Лучший, твори дальше.
AlexGyver спасибо, очень интересно.
Алекс, спасибо за видос, расскажи про гирлянду на адресных светодиодах на окне, которую засветил в предыдущем видео. Как раз актуально к НГ.
интересно спасибо, ждём ещё игры
Даёшь разбор! Кстати, как насчёт игр для двоих? Например Го, или Морской Бой?)
это просто шедевр(на костылях)!
очень круто! далее надо танчики делать)
Круто Alex!
Вот, шикарнейшее видео. Но, вопрос, а по спецухе после Бауманки Вы работать планируете?