![]() |
|
|
![]()
|
|
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: нет Всего: 4 |
РЕБЯТ, привет! Тут такая проблемка! Нужно мне сделать курсовик! Использовать можно любой язык программированию для DOS (Pascal, Assrmbler, C/C++). Задача такая: нужно написать Тетрис. У меня проблема в алгоритме. Не могй понять, как сделать так, чтобы фигурки тетриса ложились друг на друга, а не зарисовывались на экране. Как это сделать? Может кто знает? Заранее благодарю!
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: нет Всего: 34 |
сделать битовый массив типа
10000000001 10000000001 10000000001 10001110001 10000100001 10000100001 10000000001 11111111111 какбы стакан соответственно нолики " прозрачные" ну и проверять при движении фигурки где там она двигается по ноликам или нет вывод спрайтов на экран тоже легко будет сделать -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: нет Всего: 4 |
Благодарю, oleg1973, попробую! А еще что-нибудь, кто-нибудь предложит?
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| PROme |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 23.7.2003 Где: Kiev Репутация: нет Всего: 1 |
А что еще?
Классический метод задания лабиринта (хоть и необычного). Используй для обозначения самих фигурок любой символ, отличный от 1 и 0 и у тебя небудет проблем. Определяешь текущие: - ширину нижней части фигуры; - положение (не центр, а, например крайней левой точки); Ну, а если дельше нет преград, опускаешься на уровень ниже и снова проверяешь. Когда фигура достигла препятствия - останавливаешь ее (заносишь в массив), и начинаешь проверять - нет ли заполненых рядков, если есть - уничтожаешь их, зачисляешь очки или что там. Также следует проверить, если фигура уперлась вниз и вверх, значит гаме овер - ю луз (для этого можно расширить верхние границы, и проверять после остановки, не лежит ли там фигура, например) ххххххххххххххххх ххххххххххххххххх ххххххххххххххххх 100000000000001 100000000000001 100000000000001 100000000000001 100000000000001 100000000000001 100000000000001 100000000000001 111111111111111 Но лучше будет просто соотносить расстояние, оставшееся свободное до "потолка" и высоту фигуры, которая должна выпасть (массив займет меньше памяти). Также следует сделать управление фигурами - поворот и ускорение, думаю я этим проблем не будет. ЗЫ: разумеется лучше использовать не стандартные массивы, а выделить себе область памяти и юзать ее - быстрей будет; ЗЫЗЫ: скорее не быстрей, даже самый забитый комп 20 летней давности потянит это без проблем (не считая визуализации), просто на оценку повлияет, ИМХО. Удачи. Будут вопросы - пиши, постараемся помочь. -------------------- SEO-мастер |
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: нет Всего: 4 |
PROme, вот это ты расписал. Просто ништяк! Огромное спасибо, многое сразу стало понятно!
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: нет Всего: 4 |
PROme, а еще такой вопрос! Как сделать так, чтобы можно было и фигуре свободно падать и пользователю свободно ее двигать? Помоги!
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |