-
t800
- Ветеран
-
- Сообщения: 982
- Зарегистрирован: 22 июл 2015, 11:36
- Пол:
- Награды: 4
-
- Поблагодарили: 191 раз.
-
|
t800 » 04 сен 2016, 06:01
Швейк с форума Green Dragon опубликовал первую часть своей статьи. Сегодня продолжил разбираться с тем как работает PhilAI Но прежде чем читать дальше мою статью про то как работает PhilAI. Эту статью имеют право читать только: 1. Лицо, правомерно владеющее экземпляром программы для ЭВМ или экземпляром базы данных (пользователь), вправе без разрешения автора или иного правообладателя и без выплаты дополнительного вознаграждения: 1) осуществлять действия, необходимые для функционирования программы для ЭВМ или базы данных (в том числе в ходе использования в соответствии с их назначением), включая запись и хранение в памяти ЭВМ (одной ЭВМ или одного пользователя сети), внесение в программу для ЭВМ или базу данных изменений исключительно в целях их функционирования на технических средствах пользователя, исправление явных ошибок, если иное не предусмотрено договором с правообладателем; 2) изготовить копию программы для ЭВМ или базы данных при условии, что эта копия предназначена только для архивных целей или для замены правомерно приобретенного экземпляра в случаях, когда такой экземпляр утерян, уничтожен или стал непригоден для использования. При этом копия программы для ЭВМ или базы данных не может быть использована в иных целях, чем цели, указанные в подпункте 1 настоящего пункта, и должна быть уничтожена, если владение экземпляром таких программы или базы данных перестало быть правомерным. 2. Лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия правообладателя и без выплаты дополнительного вознаграждения изучать, исследовать или испытывать функционирование такой программы в целях определения идей и принципов, лежащих в основе любого элемента программы для ЭВМ, путем осуществления действий, предусмотренных подпунктом 1 пункта 1 настоящей статьи. 3. Лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия правообладателя и без выплаты дополнительного вознаграждения воспроизвести и преобразовать объектный код в исходный текст (декомпилировать программу для ЭВМ) или поручить иным лицам осуществить эти действия, если они необходимы для достижения способности к взаимодействию независимо разработанной этим лицом программы для ЭВМ с другими программами, которые могут взаимодействовать с декомпилируемой программой, при соблюдении следующих условий: 1) информация, необходимая для достижения способности к взаимодействию, ранее не была доступна этому лицу из других источников; 2) указанные действия осуществляются в отношении только тех частей декомпилируемой программы для ЭВМ, которые необходимы для достижения способности к взаимодействию; 3) информация, полученная в результате декомпилирования, может использоваться лишь для достижения способности к взаимодействию независимо разработанной программы для ЭВМ с другими программами, не может передаваться иным лицам, за исключением случаев, когда это необходимо для достижения способности к взаимодействию независимо разработанной программы для ЭВМ с другими программами, а также не может использоваться для разработки программы для ЭВМ, по своему виду существенно схожей с декомпилируемой программой для ЭВМ, или для осуществления другого действия, нарушающего исключительное право на программу для ЭВМ. 4. Применение положений, предусмотренных настоящей статьей, не должно противоречить обычному использованию программы для ЭВМ или базы данных и не должно ущемлять необоснованным образом законные интересы автора или иного правообладателя. Таким образом если вы не являетесь владельцем легальной копии Heroes2w.exe или собираетесь использовать информацию из статьи за исключением случаев, когда это необходимо для достижения способности к взаимодействию независимо разработанной программы для ЭВМ с другими программами, то вы должны немедленно покинуть данную тему и статью про то как работает PhiIAI не читать.А теперь про PhilAI. Информация для тех кто имеет право ее читать PhilAI состоит из следующий функций - Код: Выделить всё
philAI::BuildBuilding(town *,int) philAI::BuildCreature(town *,int,int) philAI::BuildHero(town *,int) philAI::CanBuyBHC(BHC &) philAI::CheckBerserk(void) philAI::CheckBuyStuff(void) philAI::CheckForCreatureUpgrades(void) philAI::CheckReload(void) philAI::ChooseEvaluateBattle(armyGroup *,hero *,armyGroup *,hero *,int,int,int,int &,int &) philAI::ChooseGoldOrExperience(int,int) . philAI::ChooseToFightForArtifact(int,int,int) philAI::ChooseToPayRansomOnHero(int) philAI::CombatMonsterEvent(hero *,int,int *,mapCell *) philAI::ComputeUpgradeValue(int,int) philAI::ComputeValueOfFreeSS(hero *,int) philAI::ComputeValueOfSS(hero *,int,int) philAI::CreaturesToBuy(int,int) philAI::CreaturesToBuy(town *,int) philAI::DamageGroup(armyGroup *,hero *,hero *,float) philAI::DetermineHeroToMove(int) philAI::DetermineTargetPosition(int &,int &,int,int &) philAI::DimensionDoorTo(int,int) philAI::DoAI(int) philAI::DoAllHeroInteractions(void) philAI::DoAnywhereDDoorTownGate(int) philAI::DoDimensionDoor(hero *) philAI::EvaluateArtifactEvent(int,int) philAI::EvaluateBarrier(mapCell *) philAI::EvaluateGenericSite(mapCell *) philAI::EvaluateHeroEvent(int,int,int,int,int *) philAI::EvaluateJail(mapCell *) philAI::EvaluateMineEvent(int,int,int,int *) philAI::EvaluateMonsterEvent(int,int,int *) philAI::EvaluateOneTimeCreaturePurchase(int,int,int,int &,int &,int &) philAI::EvaluatePassword(mapCell *) philAI::EvaluateRecruitSite(mapCell *) philAI::EvaluateTownEvent(int,int,int,int,int *) philAI::FightEvent(hero *,mapCell *,int) philAI::FightValueOfStack(armyGroup *,hero *,int,int,int,int) philAI::FutureDeflator(int * const) philAI::GetBestBHC(int,BHC &) philAI::GetBestBuilding(town *,BHC &,float &) philAI::GetBestCreature(town *,BHC &,float &) philAI::GetBestHero(town *,BHC &,float &) philAI::GetGameAIVars(void) philAI::GetGameAttentionValue(int) philAI::GetTurnAIVars(int) philAI::GetTurnAttentionValue(int) philAI::GoodAdjacent(int *) philAI::HeroInteractionAtHero(hero *,hero *,int,int *) philAI::HeroInteractionAtTown(hero *,town *,int,int *) philAI::IncrementHourGlass(void) philAI::LikelihoodOfEnemyAttacking(town *,hero *,float &,float &,int &,int &,int &,float &) philAI::ManaRefreshValue(hero *,int) philAI::MaxBuyableCreatures(int) philAI::MeanRVOfUnexploredTerritory(int) philAI::NetValueOfArtifact(int,int,int,int) philAI::ProbableOutcomeOfBattle(armyGroup *,hero *,armyGroup *,hero *,armyGroup *,int,int,int,float &,int &,int &,int &,int &,int &) philAI::QuickCombat(armyGroup *,hero *,armyGroup *,hero *,int,int,float &,float &) philAI::RVConversion(int * const) philAI::RVOfPosition(int,int,int,int,int,int,int,int,int,int) philAI::RedistributeTroops(armyGroup *,armyGroup *,int,int,int,int,int) philAI::SetupRelativeHeroStrengths(void) philAI::StrategicValueOfPosition(int,int,int,int,int *,int) philAI::TownEvent(mapCell *,hero *,int,int) philAI::TurnCostResource(int) philAI::TurnValueOfObelisk(int) philAI::TurnsToBuy(int * const) philAI::ValueOfBuyingBuilding(town *,int,int &,float &) philAI::ValueOfBuyingCreature(town *,int,int &,int,float &) philAI::ValueOfBuyingHero(town *,hero *,int &,float &) philAI::ValueOfEventAtPosition(int,int,int,int *) philAI::ValueOfTown(town *) philAI::philAI(void)
А что делает каждая из функция, это я расскажу в следующий раз.
|