[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: Jery, Rey  
Форум » Knights and Merchants: Remake » Идеи и предложения » КАМ ИИ (Предложения...)
КАМ ИИ
WannA_PlayДата: Среда, 01.08.2012, 21:41 | Сообщение # 76
Пикейщик
Группа: Проверенные
Сообщений: 439
Награды: 7
Репутация: 9
Статус: Offline
Quote (malin)
Думаю просто ввечти параметр Читерства

Тогда ввести в редактор,что-бы редактировать этот параметр можно было!


Скриптодел и картограф.
 
Alexandr_5Дата: Среда, 01.08.2012, 22:25 | Сообщение # 77
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
да да я хочу только добавить желательно настроить ии чтобы он полностью строил деревню или хотябы военное дело развивал
 
WannA_PlayДата: Среда, 01.08.2012, 22:56 | Сообщение # 78
Пикейщик
Группа: Проверенные
Сообщений: 439
Награды: 7
Репутация: 9
Статус: Offline
Quote (Krisss)
желательно настроить ии чтобы он полностью строил деревню или хотябы военное дело развивал

Поддерживаю Саню)


Скриптодел и картограф.
 
KromДата: Четверг, 02.08.2012, 08:54 | Сообщение # 79
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
Krisss, WannA_Play, Прошу не засорять ветку, тут идет конструктивное обсуждение.

Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
 
AntonPДата: Четверг, 02.08.2012, 17:07 | Сообщение # 80
Дозорный
Группа: Проверенные
Сообщений: 339
Награды: 1
Репутация: 7
Статус: Offline
Думал над параметрами ИИ, некоторые повторяют вышеперечесленные, некоторые изменены. Другие добавил, но требуют рассмотрения.
Параметры ИИ:
Честность: >1..100%< Использует ли ИИ читы или нет
(Вероятность использования чита, чем ниже процент, тем выше вероятность читерства)
Скорость: >1..5< Скорость принятия решений ИИ
(Грубо говоря таймер, каждый запуск которого активирует "Мозг ИИ")
Агрессивность: >1..5< Определяет ряд характеристик
(Как долго преследует убегающее войско врага; нападает ли, если рядом пробегает
вражеский воин, идет ли в контр атаку, если на него напали и он отбился;
Периодичность нападения и т.д.)
Тип мера: >Тиран,Фермер,Разбойник< Определяет тип строительства ИИ
(Тиран - Делает ставку на промышленность и военное дело:
Делает восновном железных воинов, нападает небольшим, а иногда и большим
войском;
Фермер - Делает ставку на сильную экономику и деревянный доспех,
нападает большим числом, восновном хорошо экипированные воины;
Разбойник - делает ставку на военное дело и деревянный доспех,
нападает огромным числом, часто дешевыми и быстро создаваемыми)
Качество войска: >1..3< (
1 - Все что под руку попадется, создает отряды на авось
2 - Нападает различными видами войск, воины ближнего боя с поддержкой воинов
дальнего боя
3 - Нападает различными видами войск, воины ближнего боя с поддержкой воинов
дальнего боя, проверяет типы войска врага, из чего делает выводы, что ему
нанимать, если у врага конница, то делает ставку на копейщиков и т.д.)


Война и мир лучшая!

Сообщение отредактировал AntonP - Четверг, 02.08.2012, 17:08
 
WannA_PlayДата: Четверг, 02.08.2012, 17:11 | Сообщение # 81
Пикейщик
Группа: Проверенные
Сообщений: 439
Награды: 7
Репутация: 9
Статус: Offline
Quote (AntonP)
из чего делает выводы, что ему
нанимать, если у врага конница, то делает ставку на копейщиков и т.д.)

Вот это мысль!

Добавлено (02.08.2012, 17:11)
---------------------------------------------
Также можно сделать так что-бы ИИ в случае нападения противника и неудачной атаке их города мог строить и укреплять те позиции защиты,где это действительно нужно,ну тоесть строить башни и вооружать лучших войномв на защиту именно "этого" куска своего владения


Скриптодел и картограф.
 
malinДата: Четверг, 02.08.2012, 19:06 | Сообщение # 82
Сквайр
Группа: Проверенные
Сообщений: 180
Награды: 3
Репутация: 44
Статус: Offline
Quote (AntonP)
Честность: >1..100%< Использует ли ИИ читы или нет
(Вероятность использования чита, чем ниже процент, тем выше вероятность читерства)

AntonP, может ты мне объяснишь как это будет работать в процентах?)
Я себе представляю это вот так:
ИИ не хватает золота. ИИ выкидывает кость 1...100% и сверяет с честность=59% (например), если выкинутая кость больше 59%, фокус удался и ИИ добавляет себе на склад +1 золота. Так? А если выкинутая кость меньше, то ИИ грустно вздыхает и отсчитывает N секунд до следующего выкидывания костей? Тогда надо ещё второй параметр к честности - "время грусти ИИ" в N секунд. Иначе ИИ будет постоянно выкидывать кости.
Также ИИ будет постоянно не хватать , скажем, ... мечей. И он будет выкидывать кости и на них? Даже если у ИИ 99% честности он всё равно будет выкидывать кости через N время ради мечей?
А если необходимо ограничить ИИ в товарах? Запретить ему читерить конями например? Нужно ещё параметр к честности.
А нужно ли ограничить время N для всех товаров? ИИ считерил хлебом, и теперь ждёт N секунд, чтобы считерить вином? Или для каждого товара отдельное N?
Предложенный мной метод исключает выше указанное.
Quote (AntonP)
Скорость: >1..5< Скорость принятия решений ИИ
(Грубо говоря таймер, каждый запуск которого активирует "Мозг ИИ")
Агрессивность: >1..5< Определяет ряд характеристик
(Как долго преследует убегающее войско врага; нападает ли, если рядом пробегает
вражеский воин, идет ли в контр атаку, если на него напали и он отбился;
Периодичность нападения и т.д.)

Почему именно 1...5? Стоит расписать. Krom, говорил что хочет объединить предложенную мной медлительность со скоростью, тогда это должно выглядеть так: Если скорость >= 1 значить ИИ строить одновременно зданий в количестве = скорость. Если скорость < 1 (от 0...1), то ИИ строит только одно здание единовременно и делает паузу между строительством равную 1/скорость. Если скорость = 0 - ИИ не строит. Если скорость = 1 - нет задержки.
Про агрессивность у меня чётких идей пока нет.
Quote (AntonP)
Тип мера: >Тиран,Фермер,Разбойник< Определяет тип строительства ИИ
(Тиран - Делает ставку на промышленность и военное дело:
Делает восновном железных воинов, нападает небольшим, а иногда и большим
войском;
Фермер - Делает ставку на сильную экономику и деревянный доспех,
нападает большим числом, восновном хорошо экипированные воины;
Разбойник - делает ставку на военное дело и деревянный доспех,
нападает огромным числом, часто дешевыми и быстро создаваемыми)

Мэр же не заведует атаками. Хм, а как взаимодействуют Генерал и Мэр?
Quote (AntonP)
Качество войска: >1..3< (
1 - Все что под руку попадется, создает отряды на авось
2 - Нападает различными видами войск, воины ближнего боя с поддержкой воинов
дальнего боя
3 - Нападает различными видами войск, воины ближнего боя с поддержкой воинов
дальнего боя, проверяет типы войска врага, из чего делает выводы, что ему
нанимать, если у врага конница, то делает ставку на копейщиков и т.д.)

Мне кажется это очень сложный вопрос, по уму ИИ должен ещё уметь отступать и заманивать игрока в западню. Krom, говорил что нам стоит акцентировать внимание пока на Мэре, не трогая Генерала.



Пора бы и поесть. (с) Ополченец
Да-а? (с) Каменотёс
Да! (с) Строитель
 
AntonPДата: Пятница, 03.08.2012, 07:41 | Сообщение # 83
Дозорный
Группа: Проверенные
Сообщений: 339
Награды: 1
Репутация: 7
Статус: Offline
Malin, Действительно проценты не катят:) Тогда можно сделать Честность 1..3, если 3, то читерит только тогда, когда не хватает главного ресурса (Доска, камень, золото), а добычи этого ресурса покачто нет. Если 2, то может читерить любой ресурс, кроме оружия, доспехов и коней. Если 1, то пусть хоть зачитерится, может читить любой ресурс:) А период читерства можно сделать константой, например 3 секунды. Чтобы он не читерил без остановки.

Quote (malin)
Скорость. Почему именно 1...5? Стоит расписать

Скорость и медлительность две стороны одной медали, оставим скорость.
Т.к. всеже не знаю структуру ИИ в римейке, поэтому вместо таймера предлагаю следующее.
Давайте покачто 1..4, тоесть 4 режима скорости.
Скорость 1 - это значит:
1)ИИ может ставить одновременно максимум 2 плана зданий
2)ИИ дает указания войскам раз в 3 секунды, перестроение войск, выбор цели и т.д. (На будущее)
3)ИИ имеет задержку при производстве оружия 3 секунды, например если в оружейне оружейник создал топор, то перед тем как взяться за следующий заказ ждет 3 секунды (На будущее)
4)ИИ имеет задержку при обучении граждан 2 секунды, аналагично с "3)"
5)ИИ имеет задержку при рекрутировании войск из казармы 2 секунды, аналагично с "3)" (На будущее)
Скорость 2 - это значит:
1)ИИ может ставить одновременно максимум 3 плана зданий
2)ИИ дает указания войскам раз в 2 секунды, перестроение войск, выбор цели и т.д. (На будущее)
3)ИИ имеет задержку при производстве оружия 2 секунды (На будущее)
4)ИИ имеет задержку при обучении граждан 1 секунду, аналагично с "3)"
5)ИИ имеет задержку при рекрутировании войск из казармы 1 секунды, аналагично с "3)" (На будущее)
Скорость 3 - это значит:
1)ИИ может ставить одновременно максимум 4 плана зданий
2)ИИ дает указания войскам раз в 1 секунды, перестроение войск, выбор цели и т.д. (На будущее)
3)ИИ имеет задержку при производстве оружия 1 секунды. (На будущее)
4)ИИ не имеет задержки при обучении граждан аналагично с "3)"
5)ИИ имеет задержку при рекрутировании войск из казармы 0.5 секунды, аналагично с "3)" (На будущее)
Скорость 4 - это значит:
1)ИИ может ставить одновременно максимум 5 планов зданий
2)ИИ дает указания войскам раз в 1 секунды, перестроение войск, выбор цели и т.д. (На будущее)
3)ИИ не имеет задержки при производстве оружия (На будущее)
4)ИИ не имеет задержки при обучении граждан аналагично с "3)"
5)ИИ не имеет задержки при рекрутировании войск из казармы, аналагично с "3)" (На будущее)
Quote (malin)
Мэр же не заведует атаками.

А это и не про мэра. Это к стратегии генерала:)

Quote (malin)
Мне кажется это очень сложный вопрос, по уму ИИ должен ещё уметь отступать и заманивать игрока в западню.

Давайте покачто без отступлений. Тем более что, у ИИ открыта вся карта и он может выбирать себе цель послабее. Заподню?) В Римейке карта открыта, 1 раз разведаешь и все. Ни о какой заподне не может быть и речи.
Quote (malin)
Хм, а как взаимодействуют Генерал и Мэр?

Quote (malin)
Krom, говорил что нам стоит акцентировать внимание пока на Мэре, не трогая Генерала.

Придумаем. Это на будущее.


Война и мир лучшая!

Сообщение отредактировал AntonP - Пятница, 03.08.2012, 07:42
 
malinДата: Пятница, 03.08.2012, 12:50 | Сообщение # 84
Сквайр
Группа: Проверенные
Сообщений: 180
Награды: 3
Репутация: 44
Статус: Offline
Quote (AntonP)
Честность 1..3

+ честность = 4 - ИИ не читерит.
А вообще честность 1...4 сильно смахивает на 4 списка товаров (4 - список пуст, 3 - главные, 2 - все кроме оружия, 1 - все.) Может проще тогда просто задать один список и сверяться с ним? Чем сначала проверять чему равна честность, а потом смотреть в список "честность_=_3"
Если честно меня терзают смутные сомнения, что выставление в складе ИИ товаров на значение 9999 будет столь же эффективным)
Quote (AntonP)
Давайте покачто 1..4, тоесть 4 режима скорости.

А строить единовременно 1 здание?



Пора бы и поесть. (с) Ополченец
Да-а? (с) Каменотёс
Да! (с) Строитель
 
AntonPДата: Пятница, 03.08.2012, 13:16 | Сообщение # 85
Дозорный
Группа: Проверенные
Сообщений: 339
Награды: 1
Репутация: 7
Статус: Offline
Quote (malin)
+ честность = 4 - ИИ не читерит.

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

Quote (malin)
Если честно меня терзают смутные сомнения, что выставление в складе ИИ товаров на значение 9999 будет столь же эффективным

Нет нет нет, не 9999. Просто если у ИИ на складе 0 досок и производства досок нету, тогда прибавляем 1 доску. Тогда один слуга пойдет в склад и вытащит ее для здания, если будет 9999 тогда толпа слуг побежит за досками, это не одно и тоже.
Quote (malin)
Может проще тогда просто задать один список и сверяться с ним? Чем сначала проверять чему равна честность, а потом смотреть в список "честность_=_3"

Думаю сверяться с одним числом будет легче, чем со списком:) При том, что это будет забито заранее, никакие списки не нужны.

Quote (malin)
А строить единовременно 1 здание?

Не совсем понел, что вы имели ввиду.


Война и мир лучшая!

Сообщение отредактировал AntonP - Пятница, 03.08.2012, 13:31
 
malinДата: Пятница, 03.08.2012, 13:39 | Сообщение # 86
Сквайр
Группа: Проверенные
Сообщений: 180
Награды: 3
Репутация: 44
Статус: Offline
Quote (AntonP)
Вы не понимаете, неужели вас обрадует такой ИИ, который застопорится изза того что ему не хватило одной доски чтобы восстановиться. 4й параметр не нужен)

Просто я тешу себя надеждой, что гениальность Krom'a проявится в создании ИИ способного противостоять игроку хотя бы экономически. Да и вообще я за бОльшую свободу, чем шире параметр (непрерывнее его функция) тем больше возможностей. (да и глюков кстати тоже...)
Quote (AntonP)
Нет нет нет, не 9999. Просто если у ии на складе 0 досок и производства досок нету, тогда прибовляем 1 доску. Тогда один слуга пойдет в склад и вытащит ее для здания, если будет 9999 тогда толпа слуг побежит за досками, это не одно и тоже.

Фишка вот в чём. Сравним два ИИ. Один, ИИ_1, честность = 4 (не читерит); другой, ИИ_2, честность = 3 (может читерить досками). У ИИ_1 досок = 9999. У ИИ_2 досок = 0. Оба строят здание. ИИ_1 хватает ресурсов, слуги идут за досками. ИИ_2 добавляет к себе доски потому, что может читерить слуги идут за досками. Разницы почти нет. Ты сразу конечно же скажешь:"Разница есть! Есть "время совести"!
Quote (AntonP)
А период читерства можно сделать константой, например 3 секунды. Чтобы он не читерил без остановки.
"
Но!
Quote (AntonP)
Вы не понимаете, неужели вас обрадует такой ИИ, который застопорится изза того что ему не хватило одной доски чтобы восстановиться.

Получается ИИ_1 построит здание быстрее! Чем ИИ_2 ! Потому что доски возьмут сразу все слуги, а не по одному в три секунды! Получается 9999 эффективнее чем честность с "временем совести", а без "времени совести" сам параметр честности = 9999 ресурсам. Для чего мы вообще ввели честность? Чтобы сравнять игрока и ИИ. 9999 ресурсов сравнивает их эффективнее.
Quote (AntonP)
Думаю сверяться с одним числом будет легче, чем со списком:)

Согласен, легче, но малофункционально. Смотри:
С числом:
ИИ нужно N досок. Если честность <= 3, то добавить +N досок. (само число N сейчас не важно 1 или 10)
Примечание: для каждого ресурса придётся делать свою проверку в соответствии с честностью, для мечей с 1, для хлеба с 2, для досок с 3. А если захочется исправить? Придётся многое менять.
Со списком:
ИИ нужно N досок. Если в списке честности есть доски, то добавить +N досок.
Примечание: код для любого товара одинаковый, не будет потребности что либо менять, потому как менять собственно нечего, код один для любого товара.
Алгоритм поиска по массиву сложнее, чем сравнение с числом. Но он функциональнее.
Пример:
Картодел делает карту и его задумкой является ИИ, который может читерить ТОЛЬКО досками, хлебом, и луками. Больше ничем!
С числом фишка не прокатит, картодел не сможет сделать такую карту потому что нет такого числа честность = R, где R подразумевает читерство только доской, хлебом и луком.
А со списком прокатит. Картодел вписывает в список читерства доски, хлеб и лук. Готово.
Разнообразие со списком больше. Собственно как и с 9999 на складе.

Quote (AntonP)
Quote (malin)

А строить единовременно 1 здание?


Не совсем понел, что вы имели ввиду.

Скорость = X, когда ИИ строит только одно здание единовременно. По идеи это скорость = 0 ( из формулы Количество строящихся зданий = скорость + 1 , это вытекает из твоих рассуждений.)
PS: AntonP, давай на ты, а то меня вы напрягает, я ещё молодой )



Пора бы и поесть. (с) Ополченец
Да-а? (с) Каменотёс
Да! (с) Строитель


Сообщение отредактировал malin - Пятница, 03.08.2012, 13:50
 
AntonPДата: Пятница, 03.08.2012, 14:09 | Сообщение # 87
Дозорный
Группа: Проверенные
Сообщений: 339
Награды: 1
Репутация: 7
Статус: Offline
Quote (malin)
PS: AntonP, давай на ты, а то меня вы напрягает, я ещё молодой )

Ок:)
Quote (malin)
Фишка вот в чём. Сравним два ИИ. Один, ИИ_1, честность = 4 (не читерит); другой, ИИ_2, честность = 3 (может читерить досками). У ИИ_1 досок = 9999. У ИИ_2 досок = 0. Оба строят здание. ИИ_1 хватает ресурсов, слуги идут за досками. ИИ_2 добавляет к себе доски потому, что может читерить слуги идут за досками. Разницы почти нет. Ты сразу конечно же скажешь:"Разница есть! Есть "время совести"!

Quote (malin)
Получается ИИ_1 построит здание быстрее! Чем ИИ_2 ! Потому что доски возьмут сразу все слуги, а не по одному в три секунды! Получается 9999 эффективнее чем честность с "временем совести", а без "времени совести" сам параметр честности = 9999 ресурсам. Для чего мы вообще ввели честность? Чтобы сравнять игрока и ИИ. 9999 ресурсов сравнивает их эффективнее.

Ну тогда давай дадим ИИ 100 топоров, 100 кожанных доспехов и 100 щитов, вот радости то будет:)
А если по теме: для чего ИИ нужно читерство? Не для того чтобы победить игрока своей начитеренной экономикой, а для того чтобы не застопориться на дефиците чего-либо. Если у ИИ дефицит чего-либо, он начинает временно читерить, пока не наладит производство. Ведь это наша цель. Если поставит Честность 1, тогда да, будет читерить себе, но только один раз один ресурс за 3 секунды или сколько там поставим.

Quote (malin)
ИИ нужно N досок. Если честность <= 3, то добавить +N досок. (само число N сейчас не важно 1 или 10) Примечание: для каждого ресурса придётся делать свою проверку в соответствии с честностью, для мечей с 1, для хлеба с 2, для досок с 3.

Добавлять будет по 1 доске при условии, что у нас, вернее у нашего ИИ 0 ресурсов данного типа.
Quote (malin)
А если захочется исправить? Придётся многое менять.

Есть такая замечательная вещь как констаты. В формулах будет указывать название констант, а значения констант меняться будут 1 раз. Ничего сложного

Quote (malin)
Алгоритм поиска по массиву сложнее, чем сравнение с числом. Но он функциональнее. Пример: Картодел делает карту и его задумкой является ИИ, который может читерить ТОЛЬКО досками, хлебом, и луками. Больше ничем! С числом фишка не прокатит, картодел не сможет сделать такую карту потому что нет такого числа честность = R, где R подразумевает читерство только доской, хлебом и луком. А со списком прокатит. Картодел вписывает в список читерства доски, хлеб и лук. Готово. Разнообразие со списком больше. Собственно как и с 9999 на складе.

Списки это отдельная тема, если кром поддержит, то и их тоже обсудим.
Quote (malin)
Скорость = X, когда ИИ строит только одно здание единовременно. По идеи это скорость = 0 ( из формулы Количество строящихся зданий = скорость + 1 , это вытекает из твоих рассуждений.)

Эм... Вот у ИИ скорость 1, он может одновременно поставить два плана здания, а строители, также их строят, как поставилбы эти 2 плана игрок. Тоесть ИИ может строить два здания одновременно. Или можетбыть я тебя не правильно понел:)


Война и мир лучшая!
 
KromДата: Пятница, 03.08.2012, 15:40 | Сообщение # 88
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
Очень важно не распыляться - никто не будет настраивать под свою миссию 100500 параметров. От силы 10, да и те остануться по умолчанию.

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

Насчет Скорости, найм войск и оружие контролируются старыми скриптами и мы их трогать не будем, чтобы не ломать кампании и старые карты. Пока скороть влияет только на количество одновременный построек. Надо подумать как привязать скорость к старым параметрам.. например если скорость явно указана в скрипте, старые скрипты относящиеся к ней отменяются.


Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
 
malinДата: Пятница, 03.08.2012, 15:52 | Сообщение # 89
Сквайр
Группа: Проверенные
Сообщений: 180
Награды: 3
Репутация: 44
Статус: Offline
Quote (AntonP)
Есть такая замечательная вещь как констаты. В формулах будет указывать название констант, а значения констант меняться будут 1 раз. Ничего сложного

Попробую блеснуть своими знаниями в программировании.
Разберём случай честности в цифрах при добавлении +1 товара на склад:
Код:
//комментарий. введём константы для честности.
i = 3 //доски, камни
j = 2 // хлеб, вино
k = 1 //мечи, топоры
//Проверка условия добавлять ли на склад единицу товара. Х - вид товара.
Если ( Х = доски или Х = камни)
{
, то (Если честность <= i )
{
,то добавить на склад +1 Х
}
} иначе Если ( Х = хлеб или Х = вино)
{
, то (Если честность <= j )
{
,то добавить на склад +1 Х
}
} иначе Если ( Х = хлеб или Х = вино)
{
, то (Если честность <= k)
{
,то добавить на склад +1 Х
}
}

Теперь допустим нам захотелось добавить честность = 4, когда ИИ может читерить только досками.
Код:
//комментарий. введём константы для честности.
g = 4 //доски
i = 3 //доски, камни
j = 2 // хлеб, вино
k = 1 //мечи, топоры
//Проверка условия добавлять ли на склад единицу товара. Х - вид товара.
Если ( Х = доски)
{
, то (Если честность <= g )
{
,то добавить на склад +1 Х
}
} иначе
Если (
Х = доски или [эта часть кода не нужна]Х = камни)
{
, то (Если честность <= i )
{
,то добавить на склад +1 Х
}
} иначе Если ( Х = хлеб или Х = вино)
{
, то (Если честность <= j )
{
,то добавить на склад +1 Х
}
} иначе Если ( Х = хлеб или Х = вино)
{
, то (Если честность <= k)
{
,то добавить на склад +1 Х
}
}

Сложновато, правда? Можно конечно сначала проверку честности устроить, а потом проверять вид товара, но по сути одно и тоже.
Со списком:
Код:
//Список читерства для ИИ, товары которыми он может читерить.
Array = ["доски","хлеб","мечи"]
//Проверка условия добавлять ли на склад единицу товара. Х - вид товара.
Если ( Array содержит X)
{
,то добавить +1 Х на склад
}

Несколько проще, не так ли? Причём, в указанном примере читерство камней запрещено, хотя читерство досок разрешено! Условиями с цифрами пришлось бы делать ещё условие, а здесь не надо.
Если хочется добавить к читерству скажем зерно, то достаточно вписать его в список:
Array = ["доски","зерно","хлеб","мечи"]
Примечание: Тем более если массив сделать бинарным (0 или 1 для парметров. Array = [0,0,1] = ["доски","хлеб","мечи"], то Array[позиция_3] = мечи = 1 значит можно читерить мечами, если 0, то нельзя, поиск в Array можно организовать по индексу сравнивая значения Array[3] = 1 или = 0)

PS:А наборы типа главных материалов, можно задать простыми примерами стандартных массивов.
Array_главные = ["доски","камни"]
Array_основные = ["доски","камни","хлеб","золото"]

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



Пора бы и поесть. (с) Ополченец
Да-а? (с) Каменотёс
Да! (с) Строитель


Сообщение отредактировал malin - Пятница, 03.08.2012, 15:58
 
AntonPДата: Пятница, 03.08.2012, 17:06 | Сообщение # 90
Дозорный
Группа: Проверенные
Сообщений: 339
Награды: 1
Репутация: 7
Статус: Offline
И вообще зачем я про константы вспомнил, если они и не нужны тут даже:)
Крупный у вас код, куча If'ов, можно все намного проще сделать)
В принципе да, можно былобы использовать массивы, и в цикле проверять принадлежность ресурса к массиву ресурсов. Тогда будет 3 массива, в главные еще и золото нужно записать.
Лично я бы написал функцию, которая на входе имелабы ID ресурса, а на выходе целое число (Требуемая честность для читерства этого ресурса).
Примерно так:
case ID of
1: Result = число
2: Result = число
3: Result = число
...
28: Result = число

И 4го параметра в честности нету. По крайней мере я только 3 предложил. Да и вообще кром пусть решает, как лучше:)


Война и мир лучшая!
 
Форум » Knights and Merchants: Remake » Идеи и предложения » КАМ ИИ (Предложения...)
Поиск: