Перейти к содержанию

Сообщения от Спиралевидные карты

Пока нет оценок — будьте первым!
#16
Карта на пять игроков.
При увеличении силы существ выяснилась неприятная подробность. Оказывается, когда границу сторожат существа седьмого уровня, противник отказывается идти с ними воевать, даже если он гораздо сильнее. Особенно это касается золотых драконов. Поэтому приходится так: сначала побеждаем драконов, а потом имеем дело с гораздо более сильным противником, укрывшимся в замке. Что очень неприятно - противник просто сидит и копит войска и ждёт, пока я к нему приду. Иначе говоря, приходится брать числом, а не умением, а я вовсе не этого хотел.
В будущем исправлюсь. Буду вручную задавать число и уровень монстров на границе. Ну а пока имеем дело с тем, что есть.
Вложения 2
2 файл(ов) • Общий размер: 294,2 KB
#17
Ест анекдот про водку: напиток один и тот же, а приключения каждый раз разные.
Про карты "Heroes III" можно то же самое сказать. Карта одна и та же, а приключения каждый раз разные. И то, что прохожу я - совсем не то, что проходите вы на той же карте.
#22
Так, товарищи! Моя мечта сбылась. В ночь с 31-го декабря по 1 января, пока за окном бумкало и бабахало от салютов и фейерверков, я делал эту карту. На карте 17 городов. Тестирование показало удовлетворительный баланс. По крайней мере, самый лучший баланс, который я когда-либо получал. Общее впечатление - скоростное прохождение, speed-run.
Скачать карту:
https://yadi.sk/d/2uaSImBE3R9fvC

Вложения 1
1 файл • Общий размер: 15,3 KB
#25
Дано: "Heroes III".
Надо: нарисовать карту, состоящую из дуг 1/8 окружности.
Среда разработки: MS-DOS, Turbo C, Windows 95; Celeron 333.

Для этого надо нарисовать границу окружности, а потом составить карту из них.
Программа, рассчитывающая границу окружности:
/*   Радиус   */

#include
#include

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
Получились такие заготовки карт:



















#26
Проще пробежать значения радиусов, чем городить двойной цикл
Аватар пользователя
#27
Автор, а какой смысл закладывается в рисование этих карт, если не секрет? Удивляет настойчивость.
В ответ пользователю Nasos
#28
Nasos
Проще пробежать значения радиусов, чем городить двойной цикл
Куда пробежать?
Чтобы нарисовать спираль, нужны значения границ окружностей для всех радиусов, меньших заданного. Их считать придётся.

Первый цикл - радиус окружности.
Второй цикл - расчёт границы для каждого радиуса.

Добавлено через 6 минут
Marlo_Stanfield
Автор, а какой смысл закладывается в рисование этих карт, если не секрет? Удивляет настойчивость.
Тут сразу несколько смыслов.
Вот знаете, некоторые рисуют в тетради, когда им делать нечего. Здесь нечто вроде то же самое. Иногда считать хочется. Поупражнять мозги в рисовании радиусов. А чтоб совсем не без толку было, рисую карты. Ну и результат.
Там, в конце, должна получиться большая карта. В идеале - на 24 города (или 16), ну или чуть меньше. Смысл в том, что там много приключений. Должно быть.
Когда идёшь по такой большой карте, долго-долго, периодически попадаешь в зону темноты. Это там, где противник некромант и надымил. "Alone in the dark".
А ещё можно поставить союзника, и он будет "осветлять" там, где вовсе не планировал.
Ещё один смысл заключается в том, что Heroes III - двумерная игра, а я её делаю игрой с частичной размерностью - большей 1, но меньше 2.
Вот эти все эффекты я и собираюсь исследовать.
#30
Хозяин - барин
Мне так надо. А программе "по барабану".