Обсуждаем контроллеры компании Atmel.
Ответить

Тетрис для АВР+светоматрица. На Ассемблере!

Вс апр 26, 2015 09:09:08

Мяуш!
Вот такая идея засела мне в мозг. Хочу нарисовать свой Тетрис.
Принципиально на Ассме. Для МК АВР что-то типа АТМега16 или... не знаю какой объем еще займет.
Управление светодиодной матрицей = поле 20х10 квадратиков. Управление игрой с помощью джойстика от Денди (СониПлейСтейшн или др.), желательно по радиоканалу, чтобы проводов не надо было. И еще отдельное табло, на котором показывается следующая фигура и счет линий и очков.
Также поле из светодиодов РГБ, т.е. каждая фигура своим цветом.

Для чего все это нужно? Ну, самое интересное - хочу. Второе, потренироваться юзать ассемблер все лучше и лучше, а также МК. Плюс, есть идея сделать небольшой ремонтик в доме, и во всю стену сделать поле для этого тетриса. Точнее, от пола до потолка, примерным размером 1350х2700 мм. Все поле представлено РГБ светодиодами и регистрами (строки и столбцы). Кстати, принимаются предложения по организации игрового поля. Хотя, это не главное. Пока можно реализовать и на столе с матрицами РГБшными.

В нете ссылки смотрел, нихрена не понимаю. В основном готовые изделия показывают для всяких ардуин. Нужен основной алгоритм работы программы и алгоритмы блоков программы. ...

Сама Вики:
https://ru.wikipedia.org/wiki/%D2%E5%F2%F0%E8%F1

Вот какая-то курсовая...
http://knowledge.allbest.ru/programming/2c0b65635b3ad78a5d53b89421216c27_0.html
http://www.referat.ru/referat/napisanie-igrovoy-programmy-tetris-i-opisanie-algoritma-2614

Кусочек с Хабра:
http://habrahabr.ru/post/230229/

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Вс апр 26, 2015 14:01:16

Для ардуин обычно скетчи же выкладывают http://jocker.tistory.com/attachment/cfile9.uf@2012C43450F9ADC10B0281.ino - вы и их не понимаете ? IMHO если вы не можете понять скетчи ардуино и составить свой алгоритм тетриса хотя бы на бумаге - вам нужно в первую очередь не ассемблер изучать, а некие общие принципы программирования :dont_know: В школе на БК.0010 писал на бейсике - там нет никаких принципиальных проблем, но, помню, заметно сложнее змейки жрущей цифры. Сделайте змейку для начала, пусть точки жрет цветные - железо тоже самое, а алгоритм проще - будет 2 игры.

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Вс апр 26, 2015 14:10:59

Брр... :shock: Ща ляпну чего-нибудь :)
Может попробуете написать на компе, на любом известном вам языке. Сделаете на компе - разберётесь с алгоритмами. А там уже и на МК можно. А так, не понимая что делать хотите что-то сделать - "пойди туда не знаю куда..." получается.

Ёёё... Чёт я аж в ступор впал. Какие вам алгоритмы нужны?! Там же просто всё как три копейки. Просто аккуратно надо написать прогу.

1) Нужен датчик случайных (псевдослучайных) чисел.
2) Есть стакан заданного размера - значит массив. Хотите разноцветные фигурки, тогда по биту на цвет (хотите упаковывайте, хотите нет, если в память МК вмещается). На основании содержимого массива расцвечивается ваша панель.
3) Шаблоны фигур в памяти.
4) "Ставите" фигуру в стакан, ну и проверяете возможность её передвижения в стакане. Это по шаблону фигуры и содержимому стакана.
5) Как фигура "легла" - проверить на заполненные ряды.
Ну и т.д и т.п.

2Morroc: Ностальгия... Я на Бейсике УКНЦ писал Sokoban. Только уровней мало вмещалось. Пришлось вручную уровни упаковывать самопальным алгоритмом по типу RLE.

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Вс апр 26, 2015 14:47:17

Morroc писал(а):обычно скетчи


А чем этот ИНО файл открыть??? Просто с ардуинами не имел дел (принципиально).
Не смотрел еще... Может и глупости спрашиваю в самом деле... :oops: :))) :facepalm:
Morroc писал(а):Сделайте змейку для начала

Эту тоже хочу... Но во-вторую, наоборот, очередь.

Вообще, не знаю, с чего я взял, что тетрис это нечто сложное... :dont_know: Просто еще даже не успел подумать над этим... Похоже тупею последнее время.

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Вс апр 26, 2015 16:21:34

СКАЗОЧНИК писал(а):Вообще, не знаю, с чего я взял, что тетрис это нечто сложное... :dont_know:
Игра, действительно, не сложная. Аккуратно распишите себе как и что происходит в игре - и всё встанет на свои места.
Удачи!

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Вс апр 26, 2015 16:28:20

Как то пронастальгировал по Тетрису2 для zx-spectrum и сделал такой для телефона с JAVA. Правда одностаканный.
Алгоритм такой. Двумерный однобайтный массив 20х10 является как бы видеопамятью для стакана. Значение 0 -пустое место, любое другое заполненное с цветом, но цвет по-ходу Вам не нужен, кроме цвета старший бит указывает что фигура в движении, выключенный старший бит статичные (ранее упавшие части). С определенной частотой картинка стакана обновляется согласно массиву, можно сказать частота кадров.
С другой определенной частотой (скорость игры по сути) анализируется массив. Если в стакане нет движущихся частей. Сверху рисуется новая. Если есть двигающаяся часть, переставляется на строчку ниже. Если не возможно (фигура) "упала" на что-то, флаги движения снимаются. Проверяется на заполненность снизу вверх. если такие есть все сдвигается на нее.

Постоянно опрашиваются кнопки. Если нажата кнопка вниз на время это фигуры скорость игры увеличивается (фигура падает).
Если нажата влево или вправо фигура двигается соотвественно (само собой с анализом что фигура не уперлась во что то). Кнопка вверх вращает фигуру - это самое сложное в анализе кнопок.

Игра проиграна если новой фигуре нигде появится.

Как таковой самой цельной фигуры у меня не было. Анализировался весь массив. Думаю проще будет использовать цельную фигуру с координатами ее в стакане.

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Вс апр 26, 2015 20:48:55

СКАЗОЧНИК писал(а):А чем этот ИНО файл открыть??? Просто с ардуинами не имел дел (принципиально).

Ну это просто расширение такое чтобы ассоциировать с ардуино IDE, внутри текст на си.

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Пн апр 27, 2015 00:27:14

СКАЗОЧНИК писал(а):от пола до потолка, примерным размером 1350х2700 мм. Все поле представлено РГБ светодиодами и регистрами. Кстати, принимаются предложения по организации игрового поля. Хотя, это не главное. Пока можно реализовать и на столе с матрицами РГБшными
Управление такими массивами RGB светодиодов\матриц дело нешуточное. Представьте, если использовать матрицы, то 1 RGB-матрица размерами 60х60 мм. содержит 64 светодиода или, по сути, 192 "одиночных" светодиода - одиночных потому, что хоть по 3 кристалла в 1 одном корпусе, но управлять-то ими нужно, как отдельными светодиодами. Для закрытия всей стены Вам потребуется порядка 990 таких матриц, а значит управлять нужно 190080 светодиодами. Это жесть. :)))

Я немного в курсе, так как уже более полугода пытаюсь переварить\реализовать подобный проект. Не такой монстроидальный, конечно, но 168 матриц тоже штука весёлая. :)

Что хочу сказать - если ещё не испугались - обратите внимание на специализированные контроллеры для таких матриц - HT1632C - без них было бы совсем грустно.

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Пн апр 27, 2015 04:46:27

Так ему full-hd не надо выводить, это же тетрис, там все в кубиках, 20х10 в заглавном посте было

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Пн апр 27, 2015 05:11:25

ks0 писал(а):там все в кубиках, 20х10 в заглавном посте было
Матрицы я привёл для примера, как самый жуткий и самый качественный вариант, который ещё и стоить будет немеряно. Разумеется, нужно реализовывать на дискретных RGB светодиодах, но чем меньше светодиодов, тем легче ими управлять, но тем и менее качественная будет картинка. А чтобы она была достойной, ИМХО, всё равно светодиодов нужно дофига.

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Пн апр 27, 2015 08:36:07

Ну зачем же так много светодиодов. Чтобы фигура с одной строки на другую плавно перемещалась? Все равно она остановится где-то на одной из 20 строк, но никак не между ними. Да и влево-вправо тоже четко по столбцам движуха. Так что для стакана достаточно 200 пикселей. Можно взять матовую панель (стекло, плексиглас, бумагу и т.д.), на обратной стороне сделать решетку 20х10, каждую ячейку подсвечивать отдельно.

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Пн апр 27, 2015 08:57:06

Я бы взял управляемые ленты или гирлянды на WS2801/2811/2812, TM1803/1804 и т.п. - инфу гнать по SPI, проводов минимум, мб будет подороже, но конструкция табло очень простая и управлять легко.

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Пн апр 27, 2015 12:53:51

Morroc писал(а):Ну это просто расширение такое чтобы ассоциировать с ардуино IDE

Пробовал открыть блокнотом... Все строками загнало, что читать невозможно. :( :kill:

smacorp писал(а):Управление такими массивами RGB светодиодов\матриц дело нешуточное.

Вот именно, что мне не надо такой массив. :) Уже успели ответить. У меня всего 200 клеток. А в одну клетку либо один сверхяркий, либо штуки три последовательно поменьше. Управляться будет большей вероятностью ТPIC6N595, либо 2003ми. Вот и все... :dont_know: Я себе это достаточно просто представляю. Еще экспериментировал с торцевой подсветкой оргстекла, тоже хорошо очень получается, если сзади оргстекло покрасить обычной эмалью из баллона белого цвета. Тогда очень хорошо рассеивает свет по всей поверхности. Как пример посмотрите на таблички "ВЫХОД". Там именно так сделано.
Morroc писал(а):Я бы взял управляемые ленты или гирлянды на WS2801/2811/2812, TM1803/1804 и т.п.

Про них думал уже.. Просто не знаю, может и их взять, или как вариант заказать только микросхем, а они по три светодиода тянут последовательно, только питание побольше надо.

З.Ы. Да, именно РГБ все. Хочу цветные фигуры.

З.З.Ы. И еще одна заморочка. Не хочу, чтобы стена тупо квадратиками смотрелась. Ибо не красиво это. Хочется чтобы ровное пано было, или картина какая или еще что-то, чтобы оно в тетрис превращалось только когда включено... )))) А так пусть и светомузыку эмулирует или еще что.

ВО!
https://www.youtube.com/watch?v=Hfwoh_-3Mvw

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Пн апр 27, 2015 13:09:51

СКАЗОЧНИК писал(а):ВО!
Про это я и говорил. Сделать просто = играть неинтересно. ИМХО, конечно, но такой вариант не стоит заморочек. Без обид только.

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Пн апр 27, 2015 13:36:57

smacorp писал(а):играть неинтересно

Кому что. :dont_know:
У меня отец любит тетрис очень. А ему 68 лет. ))) Да и маманя не против тоже.
Кроме того, можно бегущей строкой часы выводить. Да и просто для украшения интерьера и такого ни у кого нету. :))) 8)

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Пн апр 27, 2015 13:49:54

СКАЗОЧНИК писал(а):Кому что. :dont_know:
Нет, я не про то, что сам тетрис скучный. Тетрис это шедевр. Я про то, что примитивно реализованный, как на видео, тетрис - быстро надоест. Делать надо так, чтобы, под настроение, играть можно было с интересом и долго.

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Пн апр 27, 2015 13:54:56

smacorp писал(а):под настроение, играть можно было с интересом и долго.

Не совсем понимаю что вы имеете ввиду.
Я планирую джойстик, счетчик очков на стену и подсказку, какая фигура следующая... Все по-настоящему!
А чтобы было совсем интересно, то надо делать две такие панели и устраивать соревнование... :)))

У меня пока заморочка, как крутить фигуру, если они все не ровные... И где у них центр, относительно которого крутить? :dont_know:

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Пн апр 27, 2015 14:06:26

СКАЗОЧНИК писал(а):Не совсем понимаю что вы имеете ввиду
Забейте. Вам нравится, и это главное. :)

СКАЗОЧНИК писал(а):пока заморочка, как крутить фигуру, если они все не ровные... И где у них центр, относительно которого крутить?
Вот как должны вращаться фигуры "по правилам":

СпойлерИзображение
Видите, каждая фигура это массив 4*4 - не нужно искать центр фигуры - просто вращаете весь массив целиком.

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Пн апр 27, 2015 14:17:38

Где вы взяли эту картинку??? :shock:
Вроде все понятны. Там даже можно было и 3х3 обойтись, кроме палки. Она все портит.
Однако палка и квадрат не понятны. если крутить квадрат, то он будет перемещаться относительно центра, как и палка тоже.
А вот остальные фигуры вполне хорошо будут крутиться...
Похоже, я точно тупой... :facepalm: :oops:

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Пн апр 27, 2015 14:28:03

СКАЗОЧНИК писал(а):Где вы взяли эту картинку???
Нагуглил. А что? Автор качает авторские права? :)
СКАЗОЧНИК писал(а):если крутить квадрат, то он будет перемещаться относительно центра, как и палка тоже
А Вы замечали, что во многих реализациях тетриса так и есть?

Кроме того, можно ведь "увеличить разрешение" - каждая фигура будет массивом не 4*4, а, например, 12*12 - тогда при вращении смещение относительно центра не будет таким заметным.
Ответить