IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Как использовать матрицу в играх?, Мне это нужно в игре танчики!
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Dmitriy

Репутация: -  0  +


Идея в том что танчики перемещаются по матричному полю.Поле заполнено цифрами,0-пустое,к-кирпичи,т-танк,
д-дуло танко и конечно п-пуля.Матричное поле связано с реальными координатами и положением объекта.Потом рассматриваются условия попадания пули в танк, все условия рассматриваются с помощью матрицы и отображаются в графике как действительные движения.
Вот эту задачу предстоит решить.У кого есть какие предложения?
Если этого можно избежать, то как?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(sonik-d @ 9.06.2006 4:25) *

Идея в том что танчики перемещаются по матричному полю.Поле заполнено цифрами,0-пустое,к-кирпичи,т-танк,
д-дуло танко и конечно п-пуля.Матричное поле связано с реальными координатами и положением объекта.Потом рассматриваются условия попадания пули в танк, все условия рассматриваются с помощью матрицы и отображаются в графике как действительные движения.
Вот эту задачу предстоит решить.У кого есть какие предложения?
Если этого можно избежать, то как?

sonik-d, ты немного путаешь понятия. Матрицей (по крайней мере в математике) называется объект, состоящий из упорядоченных гопределенным образом других объектов (чисел, функций..), который подчиняется определенным законам операций между этими объектами. Иначе говоря, нет особой необходимости (а иногда и права) называть пару чисел вектором, если ты не складываешь ее с другими парами по правилу параллелограмма. Так что я бы предложил называть вещи своими именами и вместо слова "матрица" в данном случае произносить "массив".

Что касается массивов (одно- или многомерные), то они являются совершенно неотъемлемой паскалевской (или лучше сказать общепрограммной) конструкцией, употребление которой в программах совершенно естественно. Абсолютно непонятно, почему нужно избегать их использования в программе, причем делать это самоцелью. Все зависит от алгоритма. Если алгоритм существенно использует like-массив конструкции (кто придумает, как это коротко сказать по-русски, напишите мне, пожалуйста smile.gif ), то избегание использования массивов (если оно возможно) грозит существенным усложнением программы.

Далее, что касается использования массивов для указания раположения объектов на дискретном игровом поле, то оно далеко не всегда необходимо. Все определяется конкретным соотношением размеров поля и количества/сложности объектов. Например, если поле достаточно большое (скажем, размер двумерного массива больше 1000х1000), а объектов немного (допустим, меньше десятка), то удобнее хранить координаты объекта и все его свойства в его собственной структуре (скажем, типа record, включающей x и y), и при его движении проверять стлкновения (или расстояния до других объектов) циклом по объектам. Если же поле не очень велико (скажем, 100х100), а объектов много (типа тоже 100), то может оказаться удобнее все же иметь массив (самих объктов или ссылок на них), соответствующий полю с координатами. Однозначного ответа нету и быть не может, но можно предложить некий критерий - всегда нужно находить некий оптимум по:
а) затратам на вычисления;
б) затратам памяти;
в) затратам на программирование.

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

Кроме того, мне кажется, не совсем правильно делать распределенное представление объекта на сетке (массиве) - типа танк рисовать несколькими буквами "т", а его дуло буквой "д".. Хотя, опять же - все зависит от конкретной задачи и способа реализации.

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

P.S.
Говоря о цифровом представлении, не используй буквы ("заполнено цифрами,0-пустое,к-кирпичи,т-танк,
д-дуло")


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 19.10.2017 3:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"