Сработает ли такая стратегия? - Страница 3 - Стратегия и тактика - Strategium.ru Перейти к содержимому

Сработает ли такая стратегия?

Рекомендованные сообщения

Сидри

Решил поразмышлять на тему того, какие бонусы религии больше всего пригодятся для экспансивного строительства городов за Корею.

Религия

Пантеонов много, но какие всё-таки наиболее полезны?

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

Теперь то, что может пригодиться. Имеет смысл брать, если данная местность приобладает на вашей стартовой позиции.

- Священный путь +1 культура с каждой клетки джунглей.

- Легенды пустыни +1 вера с каждой клетки пустыни.

- танец Авроры + 1 веры с каждой клетки тундры без леса.

Приоритетные пантеоны

- бог ремесленников +1 молоток в городе с 3 жителями.

- посланец богов +2 науки в городе с торговыми путями.

Особенно мне интересен Посланец богов. Ведь у нас планируется много городов с ограниченным населением, но все они объединятся в торговую сеть. И если при производстве одного города ~100 науки прибавка не заметна, то при производстве 10 городов по 10 науки бонус будет существенен. К тому же чтобы получить 2 науки, требуется 2 жителя, а значит несчастье увеличится на 2 за каждый город, то есть мы экономим счастье, равное двухкратному количеству наших городов. Для сравнение, пантеон дающий по 1 счастью за каждый город, требует как минимум 6 жителей, то есть начинает работать гораздо позже и пользы от него в как минимум 2 раза меньше.

Из бонуса основателя выбор между церковной собственностью (+2 монеты за город) и ритуальным погребением (+1 счастья за город). Скорее возьму второе.

Из верований почитателей хотел бы попробовать связку Соборы (+3 культуры, +1 веры, +1 счастья и ячейка художника) и Благословление гуру (+2 молотка если в городе есть специалист).

Политики

Воля, Рационализм, Порядок.

Строительство

Святилище (-1з) - собор - монумент(-1з) - рынок(+2з) - колизей (-1з) - библиотека (-1з) - университет (-2з).

Вывод

Имеем много городов с 5 жителями; в каждом городе 2 жителя на клетках еды, 2 в универе, 1 в соборе; каждый город даёт +2 веры, +9 культуры, 41 колбу и не требует содержания ни счастья, ни денег. Кроме этого, если клетки еды находятся рядом с рекой, то империя получает несколько монет прибыли. То есть прибыль прямопропорциональна количеству городов. Все ресурсы роскоши обеспечивают исключительно рост столицы. Выращивать города крупнее смысла не вижу.

Какие мысли? Реально так сыграть или чего-то я не учел (ну кроме скорости принятия нужных бонусов религий)?

Ссылка на комментарий

Закреплённые сообщения
Кроник, а какой код расчета урона? Не смотря код,всегда предположительно думал, что это 50*(мощь атакующего юнита*коэффициент суммы его бонусов и штрафов) /(мощь города*коэффициент суммы его бонусов). Тогда линкор с мощью 65, атакующий город с обороной 193 как раз примерно снимает те самые 20. Верно ли предположение или есть еще какие-либо переменные? :unsure:

На БНВ не проверял, но для Гак и ванилки код смотрел - он одинаков, за исключением констант, которые берутся из соответствующих XML-файлов цивы или аддона и при расчете используются сплошь и рядом. Расчет урона для ванилки есть в и-нете Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. и Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. (правда на английском языке).

Словами для не_программистов расписать расчет урона довольно непросто, т.к. нужно пояснять много условностей - тут константа, а тут функция, и т.п.

Для ближнего боя, дальнего и городов идет отдельные ветки расчета урона. Точнее, для ближнего и дальнего идут отдельные ветки, а для городов просто вставлено доп условие при расчете вышеуказанного урона. Но по факту, ближний бой, дальний и город - все дают приблизительно одинаковые значения (многократно проверенно на практике), так что достаточно освоить только одну ветку и заложить себе погрешность в +/-1 НР.

Рекомендую при расчете урона придерживаться вышеуказанных статей, т.к. разбираться в коде разработчиков довольно неприятно. Во-первых, он довольно запутан из-за кучи перекрестных ссылок на разные модули, во-вторых, в нем не всегда используются "говорящие" переменные (смысл которых понятен из самих названий), в-третьих, в коде нередко присутствуют, видимо, сделанные, как "временные", но так и не допиленные методы (например, при расчете урона используется метод "GC.getGame().getJonRandNum(GC.getATTACK_SAME_STRENGTH_POSSIBLE_EXTRA_DAMAGE

(), "Unit Combat Damage")", из одного названия которого уже видно, что это временная "заплатка" некоего Джона - его собственный метод разброса урона). Ну, и в-четвертых, от взгляда опытного программиста не ускользнёт факт того, что расчет урона, как, видимо, и остальной код во всей циве, сделан явно не оптимально и даже как будто умышленно заторможен. Всё это отнюдь не вызывает энтузиазма в поисках истины по коду.

Всё же попробую перевести код на русский...

0) Вычисляется разброс урона. При этом учитываются повреждения атакующего юнита (если правильно помню, то идет штраф на атаку в 10% за каждые потерянные 20% НР. То есть, юнит с 81 НР нанесет урон без штрафа, а вот юнит с 80 НР уже будет иметь штраф в 10%. В самой циве это нигде не пишется и никак не отмечается). Города штраф за потерю жизней не имеют.

1) Происходит преобразование значений от сотен к тысячам:

d = 2400 * значение_из_пункта_0 / 100

2) К полученному в п. 1) значению прибавляется еще один показатель, который совершенно по-разному рассчитывается для отображения прогнозируемого урона и реального с разбросом. Для прогнозируемого урона это выглядит как-то так (для ГаК и, видимо, для БНВ):

( (1200 - 1) * процент_поврежденности_атакующего_юнита ) / 2

3) далее высчитывается коэффициент (обозначим его k) отношения сил атакующего и атакуемого:

Если сила_оппонента больше силы_атакующего, то

k = сила_оппонента/сила_атакующего.

В противном случае,

k = сила_атакующего/сила_оппонента.

4) идет расчет, наверное, основной формулы, который и описан в англоязычной статье:

k = 0.5 + ( (k + 3)^4 ) / 512

в коде эта простая формула записана несколько более сложно и в три строки, поэтому находится не сразу, но суть у нее именно такая.

5) очередное условие: если сила_оппонента > сила_атакующего, то k = 1 / k

6) предварительный расчет урона d = значение_из_пункта_1 * значение_из_пункта_5 (округляется до целого по правилам 1,5 = 2).

7.1) Если атакует город, то

d = d * 100 / 100

для винилки используется формула: d = d * 50 / 100, но для ГаК и БНВ это, очевидно, просто замедляющее действие

7.2) Если идет атака города, то

d = d * 100 / 100

Эта формула остается неизменной для всех версий цив5 :(

8) возврат к сотням: d = d / 100 (округляется, как 1.5 = 2)

9) если результат = 0, то считается, что результат = 1.

Ссылка на комментарий

0) Вычисляется разброс урона. При этом учитываются повреждения атакующего юнита (если правильно помню, то идет штраф на атаку в 10% за каждые потерянные 20% НР. То есть, юнит с 81 НР нанесет урон без штрафа, а вот юнит с 80 НР уже будет иметь штраф в 10%. В самой циве это нигде не пишется и никак не отмечается). Города штраф за потерю жизней не имеют.

Кстати, именно эти "по 10 %" не учитываются бонусом Японии?

Ссылка на комментарий

1) Происходит преобразование значений от сотен к тысячам:

d = 2400 * значение_из_пункта_0 / 100

2) К полученному в п. 1) значению прибавляется еще один показатель, который совершенно по-разному рассчитывается для отображения прогнозируемого урона и реального с разбросом. Для прогнозируемого урона это выглядит как-то так (для ГаК и, видимо, для БНВ):

( (1200 - 1) * процент_поврежденности_атакующего_юнита ) / 2

3) далее высчитывается коэффициент (обозначим его k) отношения сил атакующего и атакуемого:

Если сила_оппонента больше силы_атакующего, то

k = сила_оппонента/сила_атакующего.

В противном случае,

k = сила_атакующего/сила_оппонента.

4) идет расчет, наверное, основной формулы, который и описан в англоязычной статье:

k = 0.5 + ( (k + 3)^4 ) / 512

в коде эта простая формула записана несколько более сложно и в три строки, поэтому находится не сразу, но суть у нее именно такая.

5) очередное условие: если сила_оппонента > сила_атакующего, то k = 1 / k

6) предварительный расчет урона d = значение_из_пункта_1 * значение_из_пункта_5 (округляется до целого по правилам 1,5 = 2).

7.1) Если атакует город, то

d = d * 100 / 100

для винилки используется формула: d = d * 50 / 100, но для ГаК и БНВ это, очевидно, просто замедляющее действие

7.2) Если идет атака города, то

d = d * 100 / 100

Эта формула остается неизменной для всех версий цив5 :(

8) возврат к сотням: d = d / 100 (округляется, как 1.5 = 2)

9) если результат = 0, то считается, что результат = 1.

Откуда информация ?

Ссылка на комментарий

Кстати, именно эти "по 10 %" не учитываются бонусом Японии?

Я думаю, что да, именно это уменьшение на 10% у Японии и не учитывается. Но убедиться в этом не довелось - эта самая запутанная часть во всём коде, с переброской по разным модулям туда-обратно. При чем, в каких модулях искать корни - не ясно (цив 5 написана на С++, а не на С#), приходится вручную включать поиск по всем модулям и искать в них реализацию вызываемых методов. Которые, в свою очередь, содержат ссылки на другие методы, реализованные, опять-таки, в других модулях. Короче, чёрт ногу сломит это всё выискивать... :(

Откуда информация ?

Из SDK, разумеется. Перевел на человеческий язык код разработчиков.

PS:

Забыл написать, что в п.0) учитываются еще все модификаторы: бонусы местности, прокачки, уникальные бонусы юнита, бонусы от цивиков и бонусы нации. Поэтому-то тут и идет перекидывание из одного модуля в другой, чтобы всё учесть, и поэтому этот пункт самый сложный для читабельности.

Изменено пользователем MAK
Ссылка на комментарий

grin.maksim
На БНВ не проверял, но для Гак и ванилки код смотрел - он одинаков, за исключением констант, которые берутся из соответствующих XML-файлов цивы или аддона и при расчете используются сплошь и рядом. Расчет урона для ванилки есть в и-нете Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. и Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. (правда на английском языке).

Словами для не_программистов расписать расчет урона довольно непросто, т.к. нужно пояснять много условностей - тут константа, а тут функция, и т.п.

Для ближнего боя, дальнего и городов идет отдельные ветки расчета урона. Точнее, для ближнего и дальнего идут отдельные ветки, а для городов просто вставлено доп условие при расчете вышеуказанного урона. Но по факту, ближний бой, дальний и город - все дают приблизительно одинаковые значения (многократно проверенно на практике), так что достаточно освоить только одну ветку и заложить себе погрешность в +/-1 НР.

Рекомендую при расчете урона придерживаться вышеуказанных статей, т.к. разбираться в коде разработчиков довольно неприятно. Во-первых, он довольно запутан из-за кучи перекрестных ссылок на разные модули, во-вторых, в нем не всегда используются "говорящие" переменные (смысл которых понятен из самих названий), в-третьих, в коде нередко присутствуют, видимо, сделанные, как "временные", но так и не допиленные методы (например, при расчете урона используется метод "GC.getGame().getJonRandNum(GC.getATTACK_SAME_STRENGTH_POSSIBLE_EXTRA_DAMAGE

(), "Unit Combat Damage")", из одного названия которого уже видно, что это временная "заплатка" некоего Джона - его собственный метод разброса урона). Ну, и в-четвертых, от взгляда опытного программиста не ускользнёт факт того, что расчет урона, как, видимо, и остальной код во всей циве, сделан явно не оптимально и даже как будто умышленно заторможен. Всё это отнюдь не вызывает энтузиазма в поисках истины по коду.

Всё же попробую перевести код на русский...

0) Вычисляется разброс урона. При этом учитываются повреждения атакующего юнита (если правильно помню, то идет штраф на атаку в 10% за каждые потерянные 20% НР. То есть, юнит с 81 НР нанесет урон без штрафа, а вот юнит с 80 НР уже будет иметь штраф в 10%. В самой циве это нигде не пишется и никак не отмечается). Города штраф за потерю жизней не имеют.

1) Происходит преобразование значений от сотен к тысячам:

d = 2400 * значение_из_пункта_0 / 100

2) К полученному в п. 1) значению прибавляется еще один показатель, который совершенно по-разному рассчитывается для отображения прогнозируемого урона и реального с разбросом. Для прогнозируемого урона это выглядит как-то так (для ГаК и, видимо, для БНВ):

( (1200 - 1) * процент_поврежденности_атакующего_юнита ) / 2

3) далее высчитывается коэффициент (обозначим его k) отношения сил атакующего и атакуемого:

Если сила_оппонента больше силы_атакующего, то

k = сила_оппонента/сила_атакующего.

В противном случае,

k = сила_атакующего/сила_оппонента.

4) идет расчет, наверное, основной формулы, который и описан в англоязычной статье:

k = 0.5 + ( (k + 3)^4 ) / 512

в коде эта простая формула записана несколько более сложно и в три строки, поэтому находится не сразу, но суть у нее именно такая.

5) очередное условие: если сила_оппонента > сила_атакующего, то k = 1 / k

6) предварительный расчет урона d = значение_из_пункта_1 * значение_из_пункта_5 (округляется до целого по правилам 1,5 = 2).

7.1) Если атакует город, то

d = d * 100 / 100

для винилки используется формула: d = d * 50 / 100, но для ГаК и БНВ это, очевидно, просто замедляющее действие

7.2) Если идет атака города, то

d = d * 100 / 100

Эта формула остается неизменной для всех версий цив5 :(

8) возврат к сотням: d = d / 100 (округляется, как 1.5 = 2)

9) если результат = 0, то считается, что результат = 1.

Спасибо)

Ссылка на комментарий

Присоединиться к обсуждению

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

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Ваша ссылка автоматически преображена.   Отображать как простую ссылку

×   Предыдущее содержимое было восстановлено..   Очистить текст в редакторе

×   You cannot paste images directly. Upload or insert images from URL.

  • Ответы 44
  • Создано
  • Последний ответ
  • Просмотры 15752

Лучшие авторы в этой теме

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу


Copyright © 2008-2024 Strategium.ru Powered by Invision Community

×
×
  • Создать...