Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Игра для DOS 
:(
    Опции темы
MacTep
Дата 18.2.2004, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



РЕБЯТ, привет! Тут такая проблемка! Нужно мне сделать курсовик! Использовать можно любой язык программированию для DOS (Pascal, Assrmbler, C/C++). Задача такая: нужно написать Тетрис. У меня проблема в алгоритме. Не могй понять, как сделать так, чтобы фигурки тетриса ложились друг на друга, а не зарисовывались на экране. Как это сделать? Может кто знает? Заранее благодарю!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
oleg1973
Дата 18.2.2004, 01:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: нет
Всего: 34



сделать битовый массив типа

10000000001
10000000001
10000000001
10001110001
10000100001
10000100001
10000000001
11111111111

какбы стакан

соответственно нолики " прозрачные"
ну и проверять при движении фигурки где там она двигается по ноликам или нет
вывод спрайтов на экран тоже легко будет сделать


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
MacTep
Дата 18.2.2004, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Благодарю, oleg1973, попробую! А еще что-нибудь, кто-нибудь предложит?


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
PROme
Дата 18.2.2004, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 23.7.2003
Где: Kiev

Репутация: нет
Всего: 1



А что еще?
Классический метод задания лабиринта (хоть и необычного).
Используй для обозначения самих фигурок любой символ, отличный от 1 и 0 и у тебя небудет проблем.

Определяешь текущие:
- ширину нижней части фигуры;
- положение (не центр, а, например крайней левой точки);

Ну, а если дельше нет преград, опускаешься на уровень ниже и снова проверяешь.

Когда фигура достигла препятствия - останавливаешь ее (заносишь в массив), и начинаешь проверять - нет ли заполненых рядков, если есть - уничтожаешь их, зачисляешь очки или что там.

Также следует проверить, если фигура уперлась вниз и вверх, значит гаме овер - ю луз (для этого можно расширить верхние границы, и проверять после остановки, не лежит ли там фигура, например)

ххххххххххххххххх
ххххххххххххххххх
ххххххххххххххххх
100000000000001
100000000000001
100000000000001
100000000000001
100000000000001
100000000000001
100000000000001
100000000000001
111111111111111

Но лучше будет просто соотносить расстояние, оставшееся свободное до "потолка" и высоту фигуры, которая должна выпасть (массив займет меньше памяти).

Также следует сделать управление фигурами - поворот и ускорение, думаю я этим проблем не будет.

ЗЫ: разумеется лучше использовать не стандартные массивы, а выделить себе область памяти и юзать ее - быстрей будет;

ЗЫЗЫ: скорее не быстрей, даже самый забитый комп 20 летней давности потянит это без проблем (не считая визуализации), просто на оценку повлияет, ИМХО.

Удачи.
Будут вопросы - пиши, постараемся помочь.


--------------------
SEO-мастер
PM MAIL WWW   Вверх
MacTep
Дата 18.2.2004, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



PROme, вот это ты расписал. Просто ништяк! Огромное спасибо, многое сразу стало понятно!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
MacTep
Дата 20.2.2004, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



PROme, а еще такой вопрос! Как сделать так, чтобы можно было и фигуре свободно падать и пользователю свободно ее двигать? Помоги!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0438 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.