Спиралевидные карты, обсуждение и предложения |
Здравствуйте, гость ( Вход | Регистрация )
Спиралевидные карты, обсуждение и предложения |
01 Jan 2018, 10:16
Сообщение
#21
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
Скачать комплект из 16 карт:
https://yadi.sk/d/UOpBUcxA3R8yvo (2,8 Mb) |
|
|
02 Jan 2018, 07:40
Сообщение
#22
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
Так, товарищи! Моя мечта сбылась. В ночь с 31-го декабря по 1 января, пока за окном бумкало и бабахало от салютов и фейерверков, я делал эту карту. На карте 17 городов. Тестирование показало удовлетворительный баланс. По крайней мере, самый лучший баланс, который я когда-либо получал. Общее впечатление - скоростное прохождение, speed-run.
Скачать карту: https://yadi.sk/d/2uaSImBE3R9fvC |
|
|
13 Jun 2018, 17:10
Сообщение
#23
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
Дано: "Heroes III".
Надо: нарисовать карту, состоящую из дуг 1/8 окружности. Среда разработки: MS-DOS, Turbo C, Windows 95; Celeron 333. Для этого надо нарисовать границу окружности, а потом составить карту из них. Программа, рассчитывающая границу окружности: Код /* Радиус */ #include <math.h> #include <stdio.h> main () { int a, b, c, d; FILE *g; /* a - радиус, для которого ведётся расчёт b - максимальное значение, для которого считается квадратный корень c - счётчик d - рассчитанное значение границы окружности */ g = fopen ("1.txt", "w"); for (a = 1; a < 61; a++) /* внешний радиус 1/8 окружности */ { b = a / sqrt (2) + 2; /* верхняя граница расчетов */ fprintf (g, "r = %i\n", a); for (c = 0; c < b; c++) { if (c == a) break; d = sqrt (a * a - c * c - .0001) + 1; if (d < c) break; if (d == a) continue; fprintf (g, "%i - %i\n", c, d); } fprintf (g, "\n"); } fclose (g); } В результате получается файл, содержащий рассчитанные границы окружностей различных радиусов. Но окружность получается неровная. После ручной правки получается следующее: Цитата r = 1 r = 2 r = 3 r = 4 3 - 3 r = 5 3 - 4 r = 6 4 - 5 r = 7 4 - 6 5 - 5 r = 8 4 - 7 5 - 7 6 - 6 r = 9 5 - 8 6 - 7 r = 10 5 - 9 6 - 9 7 - 8 Скачать заготовки карт 3 - 12: yadi.sk/d/E7Bi8tVh3Xp2e9 Скачать программу для расчёта радиусов: yadi.sk/d/0C1Ga-OX3Xp2zG Скачать файл с рассчитанными радиусами: yadi.sk/i/rWN_PXeC3Xp39B Получились такие заготовки карт: |
|
|
13 Jun 2018, 18:14
(Сообщение отредактировал t800 - 13 Jun 2018, 18:21)
Сообщение
#24
|
|
Разработчик Сообщений: 534 Спасибо сказали: 221 раз |
Цитата Программа, рассчитывающая границу окружности: Вообще это ИМХО код, а не программа ЗЫ Вот чуток подправил чтоб все могли пользоваться через любой онлайн компилятор см. http://cpp.sh/4pcsf -------------------- |
|
|
15 Jun 2018, 17:14
(Сообщение отредактировал Lava - 29 Mar 2021, 12:47)
Сообщение
#25
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
|
|
|
15 Jun 2018, 20:27
Сообщение
#26
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
|
|
|
21 Jun 2018, 04:53
Сообщение
#27
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
Кроме того, что я рисую, можно создать кучу модификаций. Перечислю некоторые:
1) Можно рисовать не только по суше, но и по воде. К сожалению, проходимость карты снижается. Вода является дополнительным препятствием. И лодки есть не у всех, к сожалению. 2) Можно рисовать проход шириной не одну клетку, а две или больше. Это резко повышает активность противника, он начинает "бегать" охотнее. Скорость игры повышается, он перестаёт просто сидеть в замке и тупо копить войско. 3) Можно рисовать не один проход спирали, а два (или больше) параллельно. К сожалению, при этом резко возрастает сложность рисования карты, приходится собирать больше информации. 4) Можно рисовать не одну спираль на карте, а несколько, причём с разным расположением. 5) Можно рисовать вообще не спирали, а какие-нибудь другие геометрические фигуры. Естественней всего - квадраты и прямоугольники. Это резко упрощает процесс создания карты. К сожалению, при этом теряется красота и играть становится неинтересно. Становится очевидной ненужность в игре "углов". Ну и так далее. Модификаций может быть много. Их можно комбинировать. |
|
|
25 Nov 2018, 18:11
Сообщение
#28
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
Заготовки карт. Две спирали. Стартовые радиусы: от 6 до 20. Ниже дана ссылка на скачивание заготовок.
Я пытался сделать одну спираль. Но что-то у меня не получилось. Если спираль узкая - она накладывается сама на себя. Теряется круглость. Есть сделать её чуть пошире - промежуток между витками становится великоват. Пришлось бросить. Эх, дискретность... https://yadi.sk/d/_6DKY_sew7iheA -------------------- -------------------- |
|
|
29 Nov 2018, 19:25
Сообщение
#29
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
|
|
|
05 Dec 2018, 11:57
Сообщение
#30
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
Схемы Циклические схемы изменения радиусов спирали. 1. Схема 1-1-0. Период схемы 3. Слишком узкая. Налазит сама на себя, становится тесной. 2. Схема 0-1-1-1. Период схемы 4. В самый раз, но однообразна. Приходится чертить даже большие карты, заранее зная, где и какие радиусы будут. 3. Схема 0-1-1-1-1. Период схемы 5. Слишком широкая. Со временем появляются интервалы между витками, а хотелось бы, чтобы витки прилегали друг к другу вплотную. 4. Схема 2-2-1-1-1. Период схемы 5. Двухспиральная схема. При рисовании возникают "скачки", которые приходится мысленно компенсировать временным сдвигом в начале очередного круга. Построены карты с начальными радиусами 6...20. Вполне возможно построить карту с R=30, сем сейчас и занимаюсь. Ожидаемое число городов на карте - 16 (хотелось 24). 5. "Скачкообразная" схема: 0-0-1-2, 0-0-2-1, 0-2-1-0 и т. д. (new!) Экспериментальная идея на будущее. Период схемы 4, одна спираль. От варианта (2) отличается отсутствием однообразия. В случае неудачи возможен вариант с периодом 5: 0-0-1-1-2, 0-0-1-2-1 и т. д. |
|
|
19 Dec 2018, 14:19
Сообщение
#31
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
Карта радиуса 30 на 16 городов. Играется легко и комфортно, по крайней мере до середины. Присутствует Грааль. Приключения вам гарантированы.
Также в архиве имеется заготовка карты, то есть вы можете творить сами свои собственные модификации, а не создавать "с нуля". https://yadi.sk/d/vAs23K0XKIhVWg |
|
|
09 Mar 2019, 12:06
(Сообщение отредактировал Lava - 29 Mar 2021, 12:49)
Сообщение
#32
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
|
|
|
23 Mar 2019, 03:36
Сообщение
#33
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
Три готовых карты.
Радиус 7, 10 и 14. На 2, 3 и 5 городов. Размер S. Скачать архив со скриншотами: yadi.sk/d/EMpgkKen9sPQlA |
|
|
09 Apr 2019, 18:59
(Сообщение отредактировал Lava - 29 Mar 2021, 12:49)
Сообщение
#34
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
Еще пара новых карт.
Скачать: yadi.sk/d/N0r4HkESVLhhEg |
|
|
19 Apr 2019, 21:08
Сообщение
#35
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
То же самое на 4 и 5 игроков.
yadi.sk/d/m5wnbNWjDk2m_w |
|
|
25 Apr 2019, 04:38
Сообщение
#36
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
|
|
|
28 Apr 2019, 07:56
Сообщение
#37
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
|
|
|
30 Apr 2019, 16:01
Сообщение
#38
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
При рисовании спиралевидных карт я придерживаюсь следующих правил.
1) Надо выбрать заготовку карты. (Можно, правда, сгенерировать рандомную.) Беру карты "Heroes III: Восстановление Эрафии", сортирую по размеру файла с картой. Самой первой оказалась карта "Всегда готов". Поэтому я рисую на ней. 2) К сожалению, на карте слишком сильные монстры. Поэтому приходится почти всех монстров удалять, иначе их не пройти! Чтобы карта не оказалась без монстров, я просто понизил ранг всех монстров на 2. 3) Затем надо удалить всех игроков. Я буду расставлять своих. 4) Выбираем стартовый радиус карты. 1, 2, 3, ... Если карта называется "3 Good to go 2", это значит, что за основу взята карта "Good to go" ("Всегда готов"), стартовый радиус 3, и на ней получилось 2 города (то есть игрока). 5) Последовательно увеличивая радиус, увеличиваем размер играбельной части карты. Получаем кучу карт. "Настоящих" или "тренировочных". 6) Выбираем число ветвей. 1, 2, 3, 4... Одна ветвь означает, что вся карта проходится за один проход. 2 означает, что сначала мы идем к центру, а потом обратно. Три означает, что идем сначала к центру карты, потом обратно, а потом опять к центру по ветвям спирали. Ну и так далее. (Вспомните спиральные галактики.) 7) Выбираем схему карты. На примере односпиральной карты: Через один виток спирали спираль становится ближе к центру. Схема выбирает, на сколько именно. Общее правило заключается в том, чтобы спираль была достаточно плотная (чтобы покрывать как можно большую площадь и иметь наибольшую длину при той же площади), и в то же время витки спирали не должны налезать друг на друга (на предыдущие ветки), чтобы спираль получилась хотя бы приближенно красивой. Примеры схем: 1-1-0, 0-1-2, 0-1-1-1, 0-1-1-1-1 и так далее. |
|
|
26 May 2019, 11:04
Сообщение
#39
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
Переписал программу для расчета дуг различного радиуса (которые нужны для рисования этих самых дуг на карте "Heroes III").
Вариант под DOS переделал под Windows. Код /* p1 Язык Visual C++ 6.0 Консольное приложение Радиус */ #include <math.h> #include <stdio.h> main () { int a, b, c, d; FILE *g; /* a - радиус, для которого ведётся расчёт b - максимальное значение, для которого считается квадратный корень c - счётчик d - рассчитанное значение границы окружности */ g = fopen ("1.txt", "w"); for (a = 1; a < 61; a++) /* внешний радиус 1/8 окружности */ { b = (int) (a / sqrt (2) + 2); /* верхняя граница расчётов */ fprintf (g, "r = %i\n", a); for (c = 0; c < b; c++) { if (c == a) break; d = (int) (sqrt (a * a - c * c - .0001) + 1); if (d < c) break; if (d == a) continue; fprintf (g, "%i - %i\n", c, d); } fprintf (g, "\n"); } fclose (g); return 0; } |
|
|
27 May 2019, 17:50
Сообщение
#40
|
|
Advanced Member Сообщений: 138 Спасибо сказали: 31 раз |
Ещё раз то же самое.
Применяя предыдущую программу, нарисовал заготовки для карт Heroes III. Эти заготовки надо ещё проверить - нет ли где ошибок, потом посмотреть, чтобы артефакты не перегораживали дорогу (иначе при определенной комбинации карта может стать непроходимой). Задать города и начальные условия. Скачать заготовки карт: https://yadi.sk/d/NSc86iPLpgXC5g |
|
|
Текстовая версия | Сейчас: 23 April 2024 - 23:57 |
Copyright by Алексей Крючков
Programming by Degtyarev Dmitry |