gifts2017

Игра "Master Of Labyrinths" ver. 1.6

Опубликовал Александр Венгер (venger) в раздел Сообщество - Игры

Генератор прямоугольных лабиринтов (алгоритм Прима, алгоритм Краскала) любого размера. Можно походить поиграть. Цель - найти выход, дойти до финиша. Управление - стрелки. Старт - левый верхний угол лабиринта, финиш - правый нижний. Можно посмотреть с любой позиции решение (алгоритм волновой трассировки), сохранить/загрузить игру и продолжить из/в файл. И, для чего собственно и писалось, распечатать (слить в Excel) лабиринт, можно и с решением. Есть три режима игры (игрок может играть в любом из них): полная видимость (все стены лабиринта видны); частичная видимость (с запоминанием пути) - видны стены только возле игрока и те, где он уже был; частичная видимость (без запоминания пути) - видны только стены вокруг текущей позиции игрока. В режиме с ограниченной видимостью есть возможность настраивать дальность видимости стен лабиринта вокруг текущей позиции игрока.

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

-----------

В версии 1.1 при игре игрок не видит весь лабиринт целиком, а только соседние стены и при прохождении "открывает" новые видимые области. Гораздо интересней проходить лабиринт и играть.

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

В версии 1.3 для режимов с ограниченной видимостью добавлена возможность настройки дальности видимости вокруг игрока, а также поправлены баги перерисовки в режиме с ограниченной видимостью, плюс мелкие доработки.

В версии 1.4 оптимизирована отрисовка видимых стен при перемещении в режиме ограниченной видимости без запоминания пройденного пути.

В версии 1.5 немного оптимизирована отрисовка видимых стен при отображенном на экране решении при перемещении в режиме ограниченной видимости без запоминания пройденного пути (3-й режим, решение на экране).

В версии 1.6 вывод на экран игры перенаправлен с ТЗ на форме в пустую Таблицу. И красивше стало и побыстрей рисует. Плюс мелкие доработки.

-----------

Генератор прямоугольных лабиринтов (алгоритм Прима, алгоритм Краскала) любого размера. Можно походить поиграть. Цель - найти выход, дойти до финиша. Управление - стрелки. Старт - левый верхний угол лабиринта, финиш - правый нижний. Можно посмотреть с любой позиции решение (алгоритм волновой трассировки), сохранить/загрузить игру и продолжить из/в файл. И, для чего собственно и писалось, распечатать (слить в Excel) лабиринт, можно и с решением. Есть три режима игры (игрок может играть в любом из них): полная видимость (все стены лабиринта видны); частичная видимость (с запоминанием пути) - видны стены только возле игрока и те, где он уже был; частичная видимость (без запоминания пути) - видны только стены вокруг текущей позиции игрока. В режиме с ограниченной видимостью есть возможность настраивать дальность видимости стен лабиринта вокруг текущей позиции игрока.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
MasterOfLabyrinths_1_6.zip
.1235994645 23,10Kb
02.12.09
64
.1235994645 23,10Kb 64 Скачать
MasterOfLabyrinths_1_0.zip
.1235158453 19,24Kb
18.11.09
41
.1235158453 19,24Kb 41 Скачать
MasterOfLabyrinths_1_1.zip
.1235307428 19,92Kb
18.11.09
30
.1235307428 19,92Kb 30 Скачать
MasterOfLabyrinths_1_2.zip
.1235393346 22,07Kb
18.11.09
31
.1235393346 22,07Kb 31 Скачать
MasterOfLabyrinths_1_3.zip
.1235479109 23,56Kb
18.11.09
26
.1235479109 23,56Kb 26 Скачать
MasterOfLabyrinths_1_4.zip
.1235493481 23,25Kb
25.09.09
25
.1235493481 23,25Kb 25 Скачать
MasterOfLabyrinths_1_5.zip
.1235502139 24,11Kb
18.11.09
90
.1235502139 24,11Kb 90 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр Венгер (venger) 20.02.09 22:39
Кстати, по алгоритму Прима будет быстрее, но по Краскалу запутаннее получается. А на лист (A4), гте-то 25 на 45 локаций, чтоб полностью покрывал, по алгоритму Краскала у меня минут 20-ть уходит, по приму минут 5-6-ть. Отрисовка и замеры, конечно, тоже жрут...
vinsentfire; motogon; +2 Ответить
2. Сhe Burashka (CheBurator) 21.02.09 01:17
3. Сhe Burashka (CheBurator) 21.02.09 01:17
скриншот, который игровой - глаза режет разлинейка ТЗ - неудобно...
4. Сhe Burashka (CheBurator) 21.02.09 01:34
размеры 26-15-2 - получаем сплошное зеленое поле
26-15-1 - "умерло", прервал по ескейпу...
размер в локациях, а локации в клетках экрана - порвал себе мозг.... сгенерить на весь экран так и не смог.. ;-)
5. Сhe Burashka (CheBurator) 21.02.09 01:47
и было бы гораздо интереснее, если быббыло несколько возможных путей прохождения, а не один... и искать оптимальный...
6. Сhe Burashka (CheBurator) 21.02.09 01:56
и решение рисовать лучше не чиними квадратиками, а Симв(149) каким -нибуль и вкаждой клеточке пути!!!
короче - зачетн6о, только жаль что экрна маленький - навороченный лабиринт не рисуется... Но вот если в профиле Душелова взять компоненту для генерации изображений и генерить лабиринт не ТЗ, а изображением - то получится гораздо красившее...
7. Александр Венгер (venger) 21.02.09 10:28
(4) Размер локации меньше трех клеток ставить нет смысла. Вот локация на 3:

***
***
***

Т.е. две стенки и пространство внутри. А вот ширина и высота уже тогда можно хоть 500х500 локаций, только ждать придется:-)

Попробуй 50х50 и размер локации 3 или 4.
8. Александр Венгер (venger) 21.02.09 10:33
(7) По Краскалу такой (50-50-3) будет минут 20-ть генериться, но пока идет время на форме, значит не завис, просто подождать. Т.е. генерить больше экрана не проблема, тем более что полосы прокрутки на ТЗ никто не отменял:-)
9. Александр Венгер (venger) 21.02.09 14:46
(0) Теорию отсюда спер:-) Правда примеры там, судя по всему, на паскале и с использованием goto, встречаются, в академических целях, судя по всему:-)
Да и в 1С так целиком не по перерисовываешь:-) Но суть таже:-)

http://opensource.com.ua/contents/978594723853p.html
10. Сhe Burashka (CheBurator) 21.02.09 14:53
(7) да я допер, побаловался.. неудобно просто скроллить - поэтому и предложил на картинку преревести
11. Александр Венгер (venger) 22.02.09 11:29
(6) > Но вот если в профиле Душелова взять компоненту для генерации изображений и генерить лабиринт не ТЗ, а изображением - то получится гораздо красившее...

-- Че т не нашел, о какой речь? Еще б на печать стенки потоньше, краски поменьше чтоб уходило при печати.
12. Александр Венгер (venger) 22.02.09 12:06
(6),(11) Еще б выводить на экран в трехмерном виде (вид изнутри при прохождении лабиринта), если уже рисование будет доступно:-)
13. Сhe Burashka (CheBurator) 22.02.09 13:01
(11) сори, это не Душелова, а Маляева: http://www.infostart.ru/profile/1782/projects/1747/
(12) и прохождение было бы гораздо интереснее, если перед глазами не иметь плана лабиринта!
14. Александр Венгер (venger) 22.02.09 16:05
(13) Для начала добавил и обновил вот что:

В версии 1.1 при игре игрок не видит весь лабиринт целиком, а только соседние стены и при прохождении "открывает" новые видимые области. Гораздо интересней проходить лабиринт и играть.

Теперь бум думать над трехмерным вариантом глазами игрока "изнутри" лабиринта:-)
vinsentfire; motogon; +2 Ответить 1
15. Сhe Burashka (CheBurator) 22.02.09 16:10
(14) эээ это хорошо новый вариант прохождения.. но ты добавь один такой вариант - что видны только текущие стены - спереди сбоку сзади.. то есть типа идешь - оп поворот направо - повернул - соответсвенно уже что сзади прошел - невидно будет!
мы по таким лабиринатм еще где-то в 86-87 годах ходили на ЕС1970
16. Александр Венгер (venger) 22.02.09 16:17
17. Александр Венгер (venger) 23.02.09 15:52
(15) Выложил обновление: В версии 1.2 введены три режима игры (игрок может играть в любом из них): полная видимость (все стены лабиринта видны); частичная видимость (с запоминанием пути) - видны стены только возле игрока и те, где он уже был; частичная видимость (без запоминания пути) - видны только стены вокруг текущей позиции игрока.
vinsentfire; motogon; +2 Ответить
18. Епрст (Ёпрст) 24.02.09 12:24
ТЗ на форме - не комильфо..
Лучше б ПустуюТаблицу снизу прикрутил бы - всё красившее...
19. Александр Венгер (venger) 24.02.09 15:42
(0) Выложил обновление: в версии 1.3 для режимов с ограниченной видимостью добавлена возможность настройки дальности видимости вокруг игрока, а также поправлены баги перерисовки в режиме с ограниченной видимостью, плюс мелкие доработки.
vinsentfire; motogon; Ёпрст; +3 Ответить
20. Александр Венгер (venger) 24.02.09 15:54
(18) Да, отрисовку думаю со временем перевести на что-то другое, эт точно:-)
21. Александр Венгер (venger) 24.02.09 16:32
(0) Еще отрисовку в режимах с ограниченной видимостью оптимизирую, чтоб без лишних действий при передвижении курсора и будет шуршать, при небольшом значении дальности видимости (1 или 2).
vinsentfire; motogon; +2 Ответить 1
22. Александр Венгер (venger) 24.02.09 19:41
(0),(21) Выложил обновление: в версии 1.4 оптимизирована отрисовка видимых стен при перемещении в режиме ограниченной видимости без запоминания пройденного пути.
vinsentfire; motogon; +2 Ответить 1
23. Александр Венгер (venger) 24.02.09 19:45
(22) Правда в этом режиме (3-й, без запоминания пути), если решение отражено на экране, то при перемещении его, решения стены, не затираются курсором, а остаются на экране. Но это требует доп. вычислений, что из стен относящихся к решению нужно перерисовать. А при большой дальности видимости - это будет заметно на глаз притормаживать на больших лабиринтах, так что, в режиме ограниченной видимости без запоминания пути лучше играть без отрисованного и показанного на экране решения.
24. Александр Венгер (venger) 24.02.09 19:52
(23) Можно, конечно, хранить стены, что отрисованы на экране и те, что нужно перерисовать, совсем без лишних стен и таким образом оптимизировать и это. Но мне критичней, чтобы стены были тоньше, линиями отрисовывались, что будет брать меньше краски при печати и быстрее будет печататься. Основная цель была - генерить лабиринты, печатать их и давать детям играться (2-6 лет). Так что бум смотреть в сторону ActiveX GflAx или чего в этом роде, где можно рисовать линии и точки хотя бы.
25. Александр Венгер (venger) 24.02.09 19:57
(0) Мама с работы никак до брата младшего не может донести распечатнанные лабиринты, знакомые, как видят, забирают для своих детей, уже неделю кряду :-)))
26. Василий Демидов (Душелов) 24.02.09 20:35
(24) Если что - свисти, помогу с компонентой ;)
27. Александр Венгер (venger) 24.02.09 22:12
(0) Пока мысля не убегла быстро обновил:-) Выложил обновление: в версии 1.5 немного оптимизирована отрисовка видимых стен при отображенном на экране решении при перемещении в режиме ограниченной видимости без запоминания пройденного пути (3-й режим, решение на экране).
При перемещении позиции игрока в этом случае, перебираю локации решения, что выведены на экран и если они по расстоянию близко к позиции курсора с учетом еще и видимости, то есть вероятность, что перемещение курсора затрет некоторые стены этих позиций решения и я их перерисовываю, но только те, что близко по расстоянию от позиции курсора, вернее от затертых им, в результате перемещения в этом режиме, стен. В общем, на длинных решениях выведенных на экран в этом режиме при больших лабиринтах будет заметно более существенно и при большой видимости, а на маленьких и так шуршит.
Все, главное вовремя остановиться ... и переходить на более качественный уровень;-)
vinsentfire; motogon; +2 Ответить
28. Александр Венгер (venger) 24.02.09 22:14
(26) > помогу с компонентой
Это в смысле, можно заказывать?;-) Ща я губу то раскачу;-)
29. Александр Венгер (venger) 24.02.09 22:18
(26) > помогу с компонентой
Я скромненький, мне бы линии рисовать, точки, можно фигуры двух-трехмерные, с поворотами там и движением, растянуть/сжать, можно тени чтоб отбрасывали с перспективой:-)
30. Василий Демидов (Душелов) 24.02.09 22:23
(29) Попиксельно? Набросай, какие методы нужны.
31. Александр Венгер (venger) 24.02.09 22:44
(30) Вообще, если вспомнить, например, вот это:
http://infostart.ru/projects/2907/
То можно смело просить компоненту, которая получает лабиринт, видимость, позиции игрока и имеет методы поворт влево 90 град, вправо 90 град, шаг вперед, шаг назад и отрисовывает это уже сразу в трехмерном виде изнутри прохождение лабиринта взглядом игрока и возвращает новую позицию игрока и т.п. (детали можно обсудить). Ибо здается мне 1С-ка не потянет обсчет трехмерной отрисовки изображения, хотя матрицами, мож и шустро будет.
32. Александр Венгер (venger) 25.02.09 00:58
(30) +(31) Просто для двухмерной отрисовки достаточно точек (вместо ячеек ТЗ на форме) разной формы и скроллинг картинки, масштабирование...
33. Александр Венгер (venger) 25.02.09 00:59
(30) +(32) Сорри, точек не разной формы, а разного цвета.
34. Александр Венгер (venger) 25.02.09 00:59
(30) +(33) И сохранения в файл jpg, например.
35. Сhe Burashka (CheBurator) 25.02.09 01:14
Когда идем по лабиринту (в режиме близком к реальному) типа так как шутер от первого лица: сам стоишь нга месте а ктебе приближаются или плывут мимо тебя стены, поворот - аналогично, повернул и опять все время идешь вперед...
36. Сhe Burashka (CheBurator) 25.02.09 01:17
(29) тут не увлекайся... имхо как только ИГРА перескакивает некий порог по приближению к реальности - она становится не такой интересной...
37. Роман Петров (PeRom) 25.02.09 11:14
Саш, а сейчас какие ВК используются в игре? или без ВК? Хочу малышу кинуть, самому пока некогда посмотреть.
38. Александр Венгер (venger) 25.02.09 11:17
(37) Счас никаких ВК, все средствами 1С, ничего не надо, просто запустить.
39. Александр Венгер (venger) 25.02.09 11:21
Кстати, ТЗ на форме - это "дизайнерское" решение, чтоб было похоже на листик из тетрадок в клеточку, когда мы на них играли в школе:-) Вот:-)
40. Епрст (Ёпрст) 26.02.09 15:11
(39) а почему не Пустую Таблицу снизу ?
там хоть обрисуйся ...
41. Александр Венгер (venger) 26.02.09 15:17
(40) 39-й коммент - это просто отмазка, просто пришло в голову:-)
А, вообще, надо попробовать. Это в режиме ввода данных Таблица или просто в Таблице, вместо ТЗ на форме? Что значит пустую, я че т недопонял, по-моему?
42. Епрст (Ёпрст) 26.02.09 15:31
(41) ё...
есть 3 вида Таблиц в 1с:
1. "Обычная", через СоздатьОбъект("Таблица")
2. "Пустая", обращение через зарезервированное слово Таблица + все методы 1.
3. "РВД", обращение через зарезервированное слово Таблица + некоторые свои методы.

У 2,3 всегда есть форма, точнее, это Таблица на форме :)

Тип Таблицы задается в Свойствах формы в меню Действия.
43. Александр Венгер (venger) 26.02.09 15:44
(42) Ок, спасибо. На днях попробую, мож красивше будет...
44. Александр Венгер (venger) 02.03.09 14:54
(0),(42) Выложил обновление: в версии 1.6 вывод на экран игры перенаправлен с ТЗ на форме в пустую Таблицу. И красивше стало и побыстрей рисует. Плюс мелкие доработки.

Переделывал на скорую руку, особо не тестировал, но должно быть нормуль:-)

Говорите, если что не так...
vinsentfire; motogon; +2 Ответить
45. Сhe Burashka (CheBurator) 05.03.09 15:25
46. Александр Венгер (venger) 05.03.09 15:30
(45) Ну так, под руководством старших товарищей, как говориться:-)
Кста, всем спасибо за советы (и Че, и Епрст и все-все-все):-)
47. Сhe Burashka (CheBurator) 05.03.09 15:33
но того, чего хотелось - все равно не увидел... ;-)
48. Александр Венгер (venger) 05.03.09 15:46
49. Александр Венгер (venger) 05.03.09 18:56
(47) > но того, чего хотелось - все равно не увидел... ;-)

> предложил на картинку преревести

Изображение, скроллинг там есть вроде ж тоже, собираюсь, в принципе.

> и было бы гораздо интереснее, если бы б было несколько возможных путей прохождения, а не один... и искать оптимальный...

Хм, лишние пути упрощают, с одной стороны, с другой надо возиться с алгоритмом генерации, еще один придумывать, стоит ли?
50. Сhe Burashka (CheBurator) 06.03.09 00:56
хочется вид от первого лица..
51. Валерий Корженко (motogon) 13.03.09 17:31
52. Валерий Корженко (motogon) 13.03.09 17:31
Хотю версию 1.6, два
Ёпрст; +1 Ответить
53. Валерий Корженко (motogon) 13.03.09 17:31
Хотю версию 1.6, три
venger; Ёпрст; +2 Ответить 1
54. Валерий Корженко (motogon) 13.03.09 17:32
(53) Кому не трудно, подсобите, а:)
venger; Ёпрст; +2 Ответить 2
55. Епрст (Ёпрст) 13.03.09 17:47
56. Валерий Корженко (motogon) 13.03.09 17:49
57. Александр Венгер (venger) 14.03.09 15:05
(54) Держи еще два за сообразительность;-) Пяти тебе уже хватит, чтобы и карать;-)
motogon; vinsentfire; +2 Ответить
58. Валерий Корженко (motogon) 26.03.09 18:08
57, пока некого, да и не нашинское это дело, спасибо
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа