1. Пожалуйста, внимательно прочитайте правила раздела.
  2. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Кодерский уголок

Тема в разделе "Мастерская", создана пользователем Dimouse, 10 сен 2006.

  1. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    32.877
    В соответствии с назначением раздела, в этой теме предполагается обсуждать конкретные вопросы, которые у вас возникают при создании своих программ (в частности - игр), помогать другим, размещать полезные ссылки на статьи и материалы, которые могут пригодиться другим.

    Что здесь не допускается:
    - беспорядочный флуд на всевозможные темы, в том числе общие обсуждения языков программирования без конкретики (карается по статье "флуд и оффтопик" *),
    - разжигания на темы "что лучше, Си или Си++ и чем они отличаются?", "какой язык программирования лучше X или Y?" и т.п. (карается по статье "флейм и участие в холиварах" *),
    - мерение пиписьками в стиле "я лучше программирую" или "ты не умеешь программировать" (карается по статье "оскорбление участников и их взглядов" *).

    Всё это допускается в специально созданной теме "Беседка для программистов или «Бутерброд с кодом».

    * по усмотрению модератора также возможно применение блокировки в данной теме.

    Оригинальное сообщение
     
    Последнее редактирование модератором: 24 ноя 2014
    CY8R4Y нравится это.
  2.  
  3. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    32.877
    Есть вопрос один.
    Есть поле из цифр (в самом простом примере 1 и бесконечность, также потенциально есть другие числа), прохождение через каждую клетку занимает время, которое на ней написано. Найти кратчайший путь. Функция должна возвращать длину этого пути и координаты следующего шага.
    Чего-то подобное у нас было на Теории Управление, но вот начисто забыл как хотя бы приблизительно это делается. Мне кажется какая-то простая рекурсивная процедура должна быть, но изобретать велосипед не хочется. Может кто-нибудь знает?
     
  4. beyl

    beyl

    Регистрация:
    9 май 2006
    Сообщения:
    341
    Алгоритм Прима-Краскала тут кажись можно прикрутить как-нибудь, только вместо расстояний между вершинами взять время. Но усложнять придётся.
     
  5. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    32.877
    beyl, а можно по-подробней? Ты уже делал что-то похожее? Штука-то ведь часто по идее должна использоваться в играх, пошаговых во всяком случае.
     
  6. MaxEd

    MaxEd

    Регистрация:
    5 авг 2004
    Сообщения:
    1.006
    Dimouse нравится это.
  7. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    32.877
    О, Макс, мега-спасибо:) Буду реализовывать пытаться.
    А вот по поводу последнего пункта, где Внимание написано, можно по-подробнее?
     
  8. BoaKaa Oldboy

    BoaKaa

    Legacy

    Регистрация:
    6 апр 2006
    Сообщения:
    2.319
    Dimouse, вот. Выложил хорошую книжку AI for Game Developers . Правда она на английском, но там очень хорошо написано и про этот алгоритм, с примерами. И про некоторые другие. Почитай, очень интересно. Во всяком случае, мне понравилось.
     
    kavlad и Dimouse нравится это.
  9. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    32.877
    О, это еще лучше, спасибо! Уже посмотрел то что там написано, судя по всему то, что надо. Меня вообще всегда этот вопрос очень интересовал, а тут еще и понадобилось...
     
  10. MaxEd

    MaxEd

    Регистрация:
    5 авг 2004
    Сообщения:
    1.006
    Дело в том, что если путь между двумя точками на карте вообще не существует, то алгоритм A* (как и большинство других подобных алгоритмов) вырождается в полный перебор всех путей. Поэтому если есть какой-нибудь способ заранее проверить, можно ли пройти из начальной точки в конечную, то лучше его применить (например, если у тебя на карте есть одноелеточный проход в непроходимой горной гряде, то вполне имеет смысл запомнить его местоположение, и выделить регионы, на которые он разделяет карту. Тогда, если начальная и конечная точка расположены в разных регионах, но в проходе, скажем, уже стоит какая-нибудь фишка, можно сразу сказать, что пути нет).

    Кстати, есть неплохое обобщение (или расширение? уж не знаю, как назвать). В приведённой ниже ссылке (перевод мой, так что если коряво - просьба не пинать :) ) описана методика разделения непрерывного пространства на сектора и поиск пути в них (надо сказать, что в непрерывно пространстве искать путь гораздо труднее, чем в дискретном, и A* в его классическом понимании вообще не подходит). Итак, ссылка:
    http://www.dhost.info/msiu/Learn/Progr/Algo-way/GDC2002.doc
     
    Последнее редактирование: 19 ноя 2006
    Dimouse нравится это.
  11. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    32.877
    Ну просто завалили меня ссылками:) Здорово. Только в этом док-файле картинки не показываются, не слишком наверное важно, но все-таки не так наглядно.
     
  12. MaxEd

    MaxEd

    Регистрация:
    5 авг 2004
    Сообщения:
    1.006
    С картинками небольшой облом, естейственно :) Можешь сходить на Гамасутру и, бесплатно зарегестрировавшись, посмотреть там оригинал.
     
  13. ПYPGEH

    ПYPGEH

    Регистрация:
    22 июн 2006
    Сообщения:
    31
    привет. кто нибудь помогите найти сайт где мона заказать с++ и дэлфи желательно чтоб не обманулиа то два раза заказал а пришли бэйсики(проч нечисть:butcher: )а то уже отчаялся
     
  14. CaH51o Target lifeform

    CaH51o

    Регистрация:
    30 ноя 2004
    Сообщения:
    1.480
    если хочешь купить, то borland.com
     
  15. ПYPGEH

    ПYPGEH

    Регистрация:
    22 июн 2006
    Сообщения:
    31
    если не секрет по какой цене предлагают там с++ и делфи просто мне кажется что не может програма стоить 2490 вечнозеленых:shok:
     
  16. BoaKaa Oldboy

    BoaKaa

    Legacy

    Регистрация:
    6 апр 2006
    Сообщения:
    2.319
    ПYPGEH,
    Зря тебе так кажется, профессиональная редакция будет стоить именно в этих пределах. Хотя большинство возможностей, которые она предоставляет тебе просто не нужны.

    На сайте microsoft ты можешь бесплатно скачать облегченный вариант Visual Studio, забыл уже какую редакцию.
    Так же есть бесплатный вариант Delphi, распространяемый самой Borland - он так же отличается от профессиональной редакции, но тебе ее возможностей за глаза. Ссылки на свободно распространяемый Delphi относительно недавно видел на nnm.ru
    Я не думаю, что у тебя возникнут большие проблемы со скачиванием - кроме как, если у тебя dial-up.

    Так же существует куча других компиляторов - например, gcc или free pascal. Эти бесплатны по определению (или по GNU ;) ) Весят они немного и скачать их можно даже через dial-up
     
    Последнее редактирование: 25 ноя 2006
  17. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    32.877
    Есть два глупых ламерских вопроса:)
    Первый вопрос - компилирую я свеженаписанную программу под OpenGL, с использованием GLUT'а, все работает. Но на других компьютерах требует glut32.dll, хотя я компилю как Release. Как бы этого избежать? Он конечно небольшой, но хотелось бы что все было в экзешнике.
    Второй вопрос тоже примерно в ту же тему. У меня программа использует всякие внешние ресурсы - картинки там, музыка. Все находится в директории DATA. Как бы мне сделать, что бы все это было в файлике допустим data.dat и желательно как-нибудь закодированное. Я использую всякие стандартные функции вроде auxDIBImageLoad("Data/News.bmp") и mod = FMUSIC_LoadSong("music.xm", NULL);
     
  18. MaxEd

    MaxEd

    Регистрация:
    5 авг 2004
    Сообщения:
    1.006
    1) Надо сделать статическую компиляцию с Глутом. Для этого сначала неплохо получить статическую версию Глута.

    2) Есть всякие дополнительные библиотеки, хотя для OGL не скажу какие (потому что не знаю)
     
  19. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    32.877
    Т.е. надо прописать в линке не glut32.lib а что-то вроде glut32_s.lib? А откуда его взять?
     
  20. MaxEd

    MaxEd

    Регистрация:
    5 авг 2004
    Сообщения:
    1.006
    Ну, скорее всего, скомпилировать ручками из проекта.
     
  21. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    32.877
    Блин, я наверное тупой. Если я компилирую глут из исходников он мне все равно дллю делает, если я ее удаляю из путей, то ничего не запускается из того, что компилировано под глутом.

    В общем я плюнул на Глут, все равно я из него использовал только одну функцию - glutSolidSphere. Теперь переделал это место на gluSphere. Шарики конечно немного другие, но поскольку они маленькие, то и отличий не видно.
     
  22. VorteX DrAgON Троллей не кормлю, сами сдохнут.

    VorteX DrAgON

    Legacy

    Регистрация:
    20 сен 2004
    Сообщения:
    3.049
    Не, не будет это работать. DLL-библиотеки при компиляции в режиме "релиз" не компонуются с экзешником. Такие библиотеки вообще никак не компонуются с экзешниками, это их предназначение, быть внешними контейнерами функций. А статическое и динамическое подключение DLL тут совсем ни причём.

    Так что если какие-то DLL'ки используете, будьте добры, распространяйте их со своей программой.
     
    Последнее редактирование: 7 дек 2006
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление