Игра tetris сделанная в делфи 7

Делаем Тетрис на Arduino



Добавим еще несколько библиотек и начнем писать код, память и во все закончится. Автор принципиально не использует, например, arduino mega, где памяти больше. Цель сделать игру именно на arduino nano, используя простые, стандартные и всем известные инструменты, но в то же время нестандартные подходы и «костыли» и с их помощью добиться максимально оптимального кода.

Первым «костылем» будет отказ от отдельного хранение в памяти позиций фигур и вообще всего, что творится на экране. Нам нужно хранить координаты точек подающей фигуры и координаты точек уже упавших фигур, то есть как максимум нам нужен еще 1 массив, двумерный 16 на 16, а это еще целых 256 байт.

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

Тетрис начинается с падающего блока, который управляется кнопками и имеет 2 координаты в системе координат матрицы. Это очень просто, возводим таймер, по которому будет падать блок. Это библиотека автора, можете почитать на сайте.

Для обработки кнопок, автор также использует свою библиотеку. Схема подключения кнопок до смешного проста: 4 кнопки, 8 проводов.

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

Видите, ничего сложного. Но это ненадолго потому, что настало время рисовать фигуры. Работать будем следующим образом: сохраним привязку к подающей точке, которая у нас уже написана, назовем ее главная точка или главный блок. Главный блок двигается в системе координат матрицы, это мы уже сделали. Все фигуры тетриса состоят из 4-ех блоков, именно поэтому, кстати, он и называется Тетрис.

Собственно, теперь осталось случайно выбирать номер фигуры и отрисовывать ее вокруг падающего блока. Здесь мы для всех 3-ех оставшихся блоков берем из флеш-памяти координаты, переводим их в глобальные координаты матрицы и включаем светодиоды. Кстати, цвет тоже выбирается случайно из 6-ти самых простых и ярких цветов пространства rgb. Угол поворота фигуры при начале раунда тоже задается случайно, а при нажатии кнопки вверх, просто берем для отрисовки следующий набор координат и вращаем по часовой стрелке. Перемещение фигуры работает все также. Сначала стираем фигуру на предыдущем положении, то есть рисуем ее черным цветом, затем в новом положении рисуем уже текущим цветом фигуры. При повороте, опять же, стираем старое положение и просто рисуем новое.

Читать еще:  Как сделать диагностику телефона через компьютер

Прошивку можно скачать на странице проекта . Разберем только самую суть. Начнем с проверки левой и правой стенки и днища. С днищем все очень просто, каждый шаг падения смотрим, не достиг ли базовый блок отметки 0 по высоте, это несложно, а вот каждое нажатие на кнопку управления нам нужно смотреть не коснулась ли крайняя точка фигуры боковых стенок матрицы.


Фигура упала на днище или другую фигуру, ее яркость не заметно увеличилась и в новом раунде падающие фигуры уже не перепутают ее цвет со своим, будут падать на нее и точно также фиксироваться, слегка прибавляя яркость.

Кстати, при нажатии кнопки вниз, фигура с большой скоростью устремляется вниз и занимает свое место.


Счет выводится цифрами, которые хранятся в памяти как набор единиц и нулей, по которым далее включаются или не включаются светодиоды. Собственного так выглядит тетрис, написанный под адресную матрицу. Благодарю за внимание. До новых встреч!

Получайте на почту подборку новых самоделок. Никакого спама, только полезные идеи!

*Заполняя форму вы соглашаетесь на обработку персональных данных

Делаем Тетрис на Arduino



Добавим еще несколько библиотек и начнем писать код, память и во все закончится. Автор принципиально не использует, например, arduino mega, где памяти больше. Цель сделать игру именно на arduino nano, используя простые, стандартные и всем известные инструменты, но в то же время нестандартные подходы и «костыли» и с их помощью добиться максимально оптимального кода.

Первым «костылем» будет отказ от отдельного хранение в памяти позиций фигур и вообще всего, что творится на экране. Нам нужно хранить координаты точек подающей фигуры и координаты точек уже упавших фигур, то есть как максимум нам нужен еще 1 массив, двумерный 16 на 16, а это еще целых 256 байт.

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

Читать еще:  Куда написать чтобы сделали детскую площадку

Тетрис начинается с падающего блока, который управляется кнопками и имеет 2 координаты в системе координат матрицы. Это очень просто, возводим таймер, по которому будет падать блок. Это библиотека автора, можете почитать на сайте.

Для обработки кнопок, автор также использует свою библиотеку. Схема подключения кнопок до смешного проста: 4 кнопки, 8 проводов.

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

Видите, ничего сложного. Но это ненадолго потому, что настало время рисовать фигуры. Работать будем следующим образом: сохраним привязку к подающей точке, которая у нас уже написана, назовем ее главная точка или главный блок. Главный блок двигается в системе координат матрицы, это мы уже сделали. Все фигуры тетриса состоят из 4-ех блоков, именно поэтому, кстати, он и называется Тетрис.

Собственно, теперь осталось случайно выбирать номер фигуры и отрисовывать ее вокруг падающего блока. Здесь мы для всех 3-ех оставшихся блоков берем из флеш-памяти координаты, переводим их в глобальные координаты матрицы и включаем светодиоды. Кстати, цвет тоже выбирается случайно из 6-ти самых простых и ярких цветов пространства rgb. Угол поворота фигуры при начале раунда тоже задается случайно, а при нажатии кнопки вверх, просто берем для отрисовки следующий набор координат и вращаем по часовой стрелке. Перемещение фигуры работает все также. Сначала стираем фигуру на предыдущем положении, то есть рисуем ее черным цветом, затем в новом положении рисуем уже текущим цветом фигуры. При повороте, опять же, стираем старое положение и просто рисуем новое.

Прошивку можно скачать на странице проекта . Разберем только самую суть. Начнем с проверки левой и правой стенки и днища. С днищем все очень просто, каждый шаг падения смотрим, не достиг ли базовый блок отметки 0 по высоте, это несложно, а вот каждое нажатие на кнопку управления нам нужно смотреть не коснулась ли крайняя точка фигуры боковых стенок матрицы.


Фигура упала на днище или другую фигуру, ее яркость не заметно увеличилась и в новом раунде падающие фигуры уже не перепутают ее цвет со своим, будут падать на нее и точно также фиксироваться, слегка прибавляя яркость.

Кстати, при нажатии кнопки вниз, фигура с большой скоростью устремляется вниз и занимает свое место.

Читать еще:  Как сделать 3д цветок из бумаги


Счет выводится цифрами, которые хранятся в памяти как набор единиц и нулей, по которым далее включаются или не включаются светодиоды. Собственного так выглядит тетрис, написанный под адресную матрицу. Благодарю за внимание. До новых встреч!

Получайте на почту подборку новых самоделок. Никакого спама, только полезные идеи!

*Заполняя форму вы соглашаетесь на обработку персональных данных

Сегодня:

Последние:
— 27.12, 20:12 / #6692
— 29.03, 23:32 / #6682
— 30 апреля 2012

Сейчас онлайн:
На сайте — 6
На IRC-канале — 2

Игры

Heroes Imitation

Версия: 1.0

Автор: invizor

Файл добавлен: 24 декабря 2010, 22:31 (добавил invizor)

Ссылки для загрузки:

heroes_imitation.rar: 1.52 Мб — Загрузить »

MD5: 8f8fe2661b255d365893d037f2a6c9be | SHA1: b9a7f00c200efc2733255d3738735088d704dc0c

Электронный вариант настольной игры “Сражение”

Компьютерная игра “Сражение” с возможностью игры по сети.

Играют вдвоем. Каждый выбирает себе армию одного цвета. Цель игрока – захватить знамя противника.
В игре принимают участи по 40 фишек с каждой стороны. Цифры на фишках соответствуют воинским званиям.

Более подробные правила приведены в текстовом файле.

Версия: 1.0

Автор: Drinkenz

Файл добавлен: 5 марта 2010, 10:58 (добавил Drinkenz)

Ссылки для загрузки:

MD5: 844a2d51d4b6fb4459578bc7d5f1ca62 | SHA1: c7b8ac488b2aa9c467031274852a14ad179ebebf

Симулятор самолета Л39

Автор: Peter

Файл добавлен: 30 декабря 2009, 12:05 (добавил Peter)

Ссылки для загрузки:

MD5: 641479827b9aee0b449ac346c993ccf8 | SHA1: 20ccf41dfbbcbe54e9690c669fb3e158796848e0

Карточная игра “50”

Файл добавлен: 20 августа 2009, 20:15

Ссылки для загрузки:

MD5: d66e83d1155ae730dffc6b4d8a9df5cf | SHA1: ef0837bb91323146ab84e8096840ce4307d3f144

Пятнашки

Версия: 2.0

Файл добавлен: 24 ноября 2007, 11:25 (добавил Kasim_RI)

Ссылки для загрузки:

MD5: 4b26b095abf4295f8b432aef4a82178c | SHA1: 8285f1cdd3003d2f4dd074d36a53da36f1baf6d2

Квадрикс

Версия: 1.0

Файл добавлен: 24 ноября 2007, 11:06 (добавил Лед и Пламень)

Ссылки для загрузки:

MD5: 2873e632eb2887c376e4bc4f422c7bce | SHA1: 54f8d9a1b25dc669d55c98812a93e19a42f0c07a

Звёздный час

Версия: 1.0

Файл добавлен: 22 сентября 2007, 10:17 (добавил Ерёмин А.А.)

Ссылки для загрузки:

MD5: b3f7fb58a31ea108bc021224e4736570 | SHA1: b7875ca98e70a33fafaca638c5c87f947462d92c

Lines

Версия: 1.0

Файл добавлен: 14 апреля 2007, 10:43 (добавил Ерёмин А.А.)

Ссылки для загрузки:

MD5: 3e1a6be4955a7345b72afc3c823d089b | SHA1: 0f4641dd25fa672854201cb18eae55a89b8f1093

Pente

Версия: 1.0

Файл добавлен: 14 апреля 2007, 10:22 (добавил Ерёмин А.А.)

Ссылки для загрузки:

MD5: e706f8a9d8dc3feae9707140f53063de | SHA1: b5792c246614961fc54507edda3f9af892c4ac77

Камень-Ножницы-Бумага

Версия: 0.2

Файл добавлен: 10 июня 2005, 17:23 (добавил gensun)

Ссылки для загрузки:

stone-scissors-paper.zip: 260 Кб — Загрузить »

MD5: f0f6712c9d4e3977318c00f8e1d37b09 | SHA1: 79a61ab51f48ac5e53f66a8d3b73feb9a4533ba7

Показаны файлы: 110 (всего файлов: 13)

Для добавления файлов на сайт воспользуйтесь этой формой.

Источники:

http://usamodelkina.ru/12323-delaem-tetris-na-arduino.html

http://usamodelkina.ru/12323-delaem-tetris-na-arduino.html

http://www.delphi.int.ru/games/

Ссылка на основную публикацию
Статьи на тему: