День добрый,
Есть массив объектов, созданных с помощью подобного конструктора:
function Squad(options)
{
this.name=options.name || 'Unnamed';
this.description=options.description || "This is one of unidentified warrior";
this.commander=options.commander || false;
this.cost=options.cost || 0;
this.rules=options.rules || null;
this.weaponSkill=options.weaponSkill || 0;
this.ballisticSkill=options.ballisticSkill || 0;
this.strength=options.strength || 0;
this.toughness=options.toughness || 0;
this.initiative=options.initiative || 0;
this.speed=options.speed || 0;
this.wound=options.wound || 0;
this.attackCount=options.attackCount || 0;
this.leadership=options.leadership || 0;
this.armorSave=options.armorSave || 0;
this.invulnerable=options.invulnerable|| 7;
this.availableWeapon=options.availableWeapon || null;
this.meleeWeapon=null;
this.rangeWeapon=null;
}
Соответственно имеется массив этих отрядов, каждый со своими характеристиками, правилами и ценой, а так же оружием, которое будет взято из списка доступного.
Вопрос в том, как составить алгоритм, который будет формировать сборку по определённым правилам, которые можно задать.
Что то подобное можно сделать имея базу знании, но есть ограничения на язык и я не уверен что полностью задача покрывается.
Как подойти к решению задачи, какими инструментами можно воспользоваться?
P.S.
К примеру:
сейчас у массиве находится 3 типа отрядов: разведчик (только легкое оружие и дальний бой, дешев и быстр), тактический (силовая броня, чуть медленнее, ближний и дальний бой, вариативность оружия) и опустошители (чуть дороже тактички, чуть медленнее её, спектр вооружения почти как у ней, но пользуются эффективнее, не умеют в ближний бой).
Предположим ограничение в цене всей армии 100 очков. Эта цена 8 разведчиков , 5 тактических или 4 опустошителей, все с базовым оружием. Соответственно заданием правил хотелось бы определять, что за данную цену необходимо подобрать армию с максимальной огневой мощью на максимальной дальности (к примеру). или максимальную по размеру, или которая сможет взять максимум единиц дополнительного тяжелого вооружения