![]() |
Модераторы: Rickert |
![]() ![]() ![]() |
|
fellix |
|
|||
Unregistered |
всех здравствуйте...
есть задача: нарисовать (желательно на С++ Builder) змейку, которая сначала появляется из одной клетки, потом растет на длину 4-ех клеток, затем начинает двигать. Затем на поле произвольным образом появляется пища, она ее ест и растет... так вот ворос: с чего начать, какой способ решения можно здесь применить и => какой алгоритм придумать? всем спасибо заранее... |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 7 Всего: 232 |
Что такое змейка: это массив из координат сегментов змейки, плюс координаты головы змейки и направление движение головы. Координаты выражаются в целых числах. Например, лабиринт у нас состоит из 16 столбиков на 16 строк, тогда змейка может состоять, к примеру, из 4-х сегментов, каждый из которых имеет координаты (x,y). При передвижении змейки с предыдущего положения на следующее, достаточно просто взять положение "головы" и сместить на 1 в сторону, в которую повёрнута "голова". Все предыдущие сегменты нужно переместить на 1 вперёд, т.е. тот сегмент, который был сразу перед головой, становится вместо головы; сегмент перед ним - становится на его позицию, и т.д., до самого последнего сегмента. Собственно, сегмент можно рассматривать как "кусок змеи", занимающий участок свободного пространства 1x1. Всё просто, и всё логично.
-------------------- ![]() |
|||
|
||||
powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 1 Всего: 97 |
Я использовал другой алгоритм: требуется только знать про первый сегмент и последний. При передвижении первый передвигается(new coord += direct*width, где direct -1, 0 или 1), а последний сегмент затирается. В итоге происходит движение. Единственно, что следует сохранять - точки поворота головы, чтобы хвост знал, где повернуть.
Движок:
|
|||
|
||||
UnDe@D |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 5.10.2007 Репутация: нет Всего: нет |
а можна ту же змейку тока в коде на C#???
|
|||
|
||||
powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 1 Всего: 97 |
А что там переписывать то? Совсем чуть чуть - и будет на С#. |
|||
|
||||
UnDe@D |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 5.10.2007 Репутация: нет Всего: нет |
||||
|
||||
Trojian |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 30.5.2007 Где: Voronezh Репутация: нет Всего: нет |
Уважаемый powerfox,
А можно выложить весь исходник змейки. Желательно с комментариями какой код и что он делает. Заранее спасибо ![]() ![]() Это сообщение отредактировал(а) Trojian - 18.10.2007, 10:37 |
|||
|
||||
powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 1 Всего: 97 |
Выкладываю (в этом посте полная версия, в следующем будет без фоновой картинки, чтобы уменьшить размер архива). Качество кода не особо. По сути, обычный С, а не С++. Но писал я, когда практически не умел программировать. Присоединённый файл ( Кол-во скачиваний: 165 ) ![]() |
|||
|
||||
powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 1 Всего: 97 |
С пустым фоном.
Присоединённый файл ( Кол-во скачиваний: 122 ) ![]() |
|||
|
||||
arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 6 Всего: 61 |
powerfox, спасибо
![]() |
|||
|
||||
powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 1 Всего: 97 |
Не за что. Может скоро выложу powersnake-1.0 ![]() Чтобы скачать архив, нужно сохранить ту кракозябру, что открывается в браузере, отбросив ".txt". Потом разархивировать. Добавлено через 1 минуту и 20 секунд В zip. Чтобы без хитростей с сохранением. Присоединённый файл ( Кол-во скачиваний: 138 ) ![]() |
|||
|
||||
Trojian |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 30.5.2007 Где: Voronezh Репутация: нет Всего: нет |
powerfoxспасибо
|
|||
|
||||
T0ohtik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 9.2.2008 Репутация: нет Всего: 1 |
Подскажите, а как лучше рисовать саму змейку имеется в виду, полигоны, просто выводить картинками или как то по другом. Возможно применение OpenGL
|
|||
|
||||
powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 1 Всего: 97 |
||||
|
||||
fil88 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 5.6.2009 Репутация: нет Всего: нет |
Привет всем! Помогите плиз с запиской по курсовому "Змейка"
|
|||
|
||||
arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 6 Всего: 61 |
fil88, вам в раздел "центр помощи"
|
|||
|
||||
Disa15031992 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 22.11.2011 Репутация: нет Всего: нет |
||||
|
||||
Alex33R |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.5.2012 Репутация: нет Всего: нет |
Disa15031992, ссылка не работает=(
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |