public ThinkGoal(ConsciousGameEntity entity) : base(entity)
        {
            fuzzyModule = new FuzzyModule();

            FuzzyVariable hunger   = fuzzyModule.CreateFLV("Hunger");
            FzSet         starving = hunger.AddLeftShoulder("Starving", 0.0, 0.1, 0.3);
            FzSet         content  = hunger.AddTriangle("Content", 0.1, 0.5, 0.8);
            FzSet         full     = hunger.AddRightShoulder("Full", 0.5, 0.8, 1.0);

            FuzzyVariable sleep  = fuzzyModule.CreateFLV("Sleep");
            FzSet         tired  = sleep.AddLeftShoulder("Tired", 0.0, 0.1, 0.3);
            FzSet         sleepy = sleep.AddTriangle("Sleepy", 0.1, 0.3, 0.5);
            FzSet         awake  = sleep.AddRightShoulder("Awake", 0.3, 0.5, 1.0);

            FuzzyVariable desirability  = fuzzyModule.CreateFLV("Desirability");
            FzSet         undesirable   = desirability.AddLeftShoulder("Undesirable", 0, 0.25, 0.5);
            FzSet         desirable     = desirability.AddTriangle("Desirable", 0.25, 0.5, 0.75);
            FzSet         veryDesirable = desirability.AddRightShoulder("VeryDesirable", 0.5, 0.75, 1.0);

            fuzzyModule.AddRule(new FzOR(starving, tired), undesirable);
            fuzzyModule.AddRule(new FzAND(content, sleepy), undesirable);
            fuzzyModule.AddRule(new FzAND(full, sleepy), desirable);
            fuzzyModule.AddRule(new FzAND(content, awake), desirable);
            fuzzyModule.AddRule(new FzAND(full, awake), veryDesirable);
        }
Exemple #2
0
 public FollowTargetGoal(ConsciousGameEntity entity) : base(entity)
 {
     GoalStatus = GoalStatus.Inactive;
     Path       = new LinkedList <Vector2>();
 }
 public SleepGoal(ConsciousGameEntity entity)
 {
     this.entity = entity;
 }
 public VitalityGoal(ConsciousGameEntity entity) : base(entity)
 {
 }
 public TraverseVertexGoal(ConsciousGameEntity entity, Vector2 target, int vertexCount)
 {
     this.entity      = entity;
     this.target      = target;
     this.vertexCount = vertexCount;
 }
 public EatGoal(ConsciousGameEntity entity)
 {
     this.entity = entity;
 }
Exemple #7
0
 public CompositeGoal(ConsciousGameEntity entity)
 {
     Entity   = entity;
     Subgoals = new List <IGoal>();
 }