File size: 1,025 Bytes
90ca39a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using AIMA.Agent.Action;
using AIMA.Agent.Percept;
using System.Collections.Generic;

namespace AIMA.Agent.Environment
{
    public interface IEnvironment<T1,T2> where T1 : IAction where T2 : IPercept
    {
        IReadOnlyDictionary<IAgent<T1, T2>, double> ReadOnlyPerformanceMeasures { get; }
        IList<IAgent<T1,T2>> GetAgents();
        void AddAgent(IAgent<T1,T2> agent);
        void RemoveAgent(IAgent<T1,T2> agent);
        IList<IEnvironmentObject> GetEnvironmentObjects();
        void AddEnvironmentObject(IEnvironmentObject environmentObject);
        void RemoveEnvironmentObject(IEnvironmentObject environmentObject);
        void Step();
        void Step(int n);
        void StepUntilDone();
        bool IsDone();
        double GetPerformanceMeasure(IAgent<T1,T2> agent);
        void AddEnvironmentView(IEnvironmentView<T1,T2> environmentView);
        void RemoveEnvironmentView(IEnvironmentView<T1,T2> environmentView);
        void NotifyViews(string message);
    }
}