12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #pragma once
- #include "../FuzzyLite/FuzzyLite.h"
- /*
- * Fuzzy.h, part of VCMI engine
- *
- * Authors: listed in file AUTHORS in main folder
- *
- * License: GNU General Public License v2.0 or later
- * Full text of license available in license.txt file, in main folder
- *
- */
- class VCAI;
- class CArmedInstance;
- class FuzzyHelper
- {
- friend class VCAI;
- fl::FuzzyEngine engine;
- fl::InputLVar* bankInput;
- fl::OutputLVar* bankDanger;
- fl::RuleBlock bankBlock;
- fl::InputLVar * ourWalkers, * ourShooters, * ourFlyers, * enemyWalkers, * enemyShooters, * enemyFlyers;
- fl::InputLVar * ourSpeed, * enemySpeed;
- fl::InputLVar * bankPresent;
- fl::InputLVar * castleWalls;
- fl::OutputLVar * threat;
- fl::RuleBlock tacticalAdvantage;
- public:
- enum RuleBlocks {BANK_DANGER, TACTICAL_ADVANTAGE};
- FuzzyHelper();
- void initBank();
- void initTacticalAdvantage();
- ui64 estimateBankDanger (int ID);
- float getTacticalAdvantage (const CArmedInstance *we, const CArmedInstance *enemy); //returns factor how many times enemy is stronger than us
- };
|